AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解」
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 建立 CodeCommit 資源 AWS CloudFormation
AWS CodeCommit 已與 整合 AWS CloudFormation,這項服務可協助您建立和設定 AWS 資源的模型,以減少建立和管理資源和基礎設施的時間。您可以建立範本來描述您想要的所有 AWS 資源 (例如儲存庫),並為您 AWS CloudFormation 佈建和設定這些資源。
使用 時 AWS CloudFormation,您可以重複使用範本,以一致且重複地設定 CodeCommit 資源。描述您的資源一次,然後在多個 AWS 帳戶 和 區域中逐一佈建相同的資源。
CodeCommit 和 AWS CloudFormation 範本
若要佈建和設定 CodeCommit 和相關服務的資源,您必須了解 AWS CloudFormation 範本。範本是以 JSON 或 YAML 格式化的文本檔案。這些範本說明您要在 AWS CloudFormation 堆疊中佈建的資源。如果您不熟悉 JSON 或 YAML,您可以使用 AWS CloudFormation 設計工具來協助您開始使用 AWS CloudFormation 範本。如需更多詳細資訊,請參閱 AWS CloudFormation 使用者指南 中的 什麼是 AWS CloudFormation 設計器?。
CodeCommit 支援在 中建立儲存庫 與從主控台或命令列建立儲存庫 AWS CloudFormation 不同,您可以使用 AWS CloudFormation 來建立儲存庫,並自動將程式碼從 Amazon S3 儲存貯體中指定的 .zip 檔案遞交至新建立的儲存庫。如需詳細資訊,包括儲存庫的 JSON 和 YAML 範本範例,請參閱 AWS::CodeCommit::Repository。
使用 建立 CodeCommit 儲存庫時 AWS CloudFormation,只要封存小於 20 MB,您就可以選擇在 AWS:CodeCommit::Repository Code 中設定屬性,將程式碼遞交至該儲存庫做為建立程序的一部分。您可以指定存放程式碼的 Amazon S3 儲存貯體,並選擇性地使用 BranchName 屬性來指定將在該程式碼初始遞交中建立的預設分支名稱。這些屬性僅用於初始儲存庫建立,並在堆疊更新時忽略。您無法使用這些屬性對儲存庫進行其他遞交,或在進行初始遞交之後變更預設分支的名稱。
注意
在 2021 年 1 月 19 日, 將 CodeCommit 中的預設分支名稱從主要 AWS 分支變更為主要分支。此名稱變更會影響使用 CodeCommit 主控台、CodeCommit APIs、 AWS SDKs和 建立儲存庫初始遞交時 CodeCommit 的預設行為 AWS CLI。 CodeCommit 使用 AWS CloudFormation 或 建立的儲存庫, AWS CDK 在建立過程中初始遞交程式碼,與 2021 年 3 月 4 日開始的變更一致。此變更不會影響現有的儲存庫或分支。使用本機 Git 用戶端建立其初始遞交的客戶具有遵循這些 Git 用戶端組態的預設分支名稱。如需詳細資訊,請參閱使用分支、建立遞交和變更分支設定。
您也可以建立範本來建立相關資源,例如儲存庫、AWS CodeBuild 建置專案、AWS CodeDeploy 應用程式和AWS CodePipeline 管道的通知規則。
範本範例
下列範例會建立名為 MyDemoRepo
的 CodeCommit 儲存庫。新建立的儲存庫會填入儲存在名為 MySourceCodeBucket
的 Amazon S3 儲存貯體中的程式碼,並放置在名為 development
, 的分支中,該分支是儲存庫的預設分支。
注意
您可以使用 ARN 或 Amazon Web Services 帳戶中的儲存貯體名稱來指定包含 ZIP 檔案的 Amazon S3 儲存貯體名稱,其中包含將遞交至新儲存庫的內容。Amazon S3 物件金鑰如 Amazon S3 開發人員指南所定義。
JSON:
{ "MyRepo": { "Type": "AWS::CodeCommit::Repository", "Properties": { "RepositoryName": "
MyDemoRepo
", "RepositoryDescription": "This is a repository for my project with code from MySourceCodeBucket.
", "Code": { "BranchName": "development
", "S3": { "Bucket": "MySourceCodeBucket
", "Key": "MyKey
", "ObjectVersion": "1
" } } } } }
YAML:
MyRepo: Type: AWS::CodeCommit::Repository Properties: RepositoryName:
MyDemoRepo
RepositoryDescription:This is a repository for my project with code from MySourceCodeBucket.
Code: BranchName:development
S3: Bucket:MySourceCodeBucket
, Key:MyKey
, ObjectVersion:1
如需更多範例,請參閱 AWS::CodeCommit::Repository。
AWS CloudFormation、CodeCommit 和 AWS Cloud Development Kit (AWS CDK)
使用建立時使用 AWS CDK AWS CloudFormation 功能建立的儲存庫。了解 AWS CloudFormation 範本如何使用 CodeCommit 資源,可協助您建立和管理 AWS CDK 程式碼。如需 的詳細資訊 AWS CDK,請參閱 AWS Cloud Development Kit (AWS CDK) 開發人員指南和 AWS CDK API 參考。
下列 AWS CDK Typescript 範例會建立名為 MyDemoRepo
的 CodeCommit 儲存庫。新建立的儲存庫會填入儲存在名為 MySourceCodeBucket
的 Amazon S3 儲存貯體中的程式碼,並放置在名為 development
, 的分支中,該分支是儲存庫的預設分支。
import * as cdk from '@aws-cdk/core'; import codecommit = require('@aws-cdk/aws-codecommit'); export class CdkCodecommitStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // The code creates a CodeCommit repository with a default branch name development new codecommit.CfnRepository(this, 'MyRepoResource', { repositoryName: "MyDemoRepo", code: { "branchName": "development", "s3": { "bucket": "MySourceCodeBucket", "key": "MyKey" } }, } ); } }
進一步了解 AWS CloudFormation
若要進一步了解 AWS CloudFormation,請參閱下列資源: