使用创建 CodeCommit 资源Amazon CloudFormation - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用创建 CodeCommit 资源Amazon CloudFormation

Amazon CodeCommit 与 Amazon CloudFormation 集成,后者是一项服务,可帮助您对 Amazon 资源进行建模和设置,这样您只需花较少的时间来创建和管理资源与基础设施。您创建一个模板来描述所有Amazon你想要的资源(例如仓库),以及Amazon CloudFormation为您预配置和配置这些资源。

当您使用Amazon CloudFormation,可重复使用您的模板来不断地重复设置 CodeCommit 资源。描述您的资源一次,然后在多个 Amazon Web Services 账户 和区域中反复预置相同的资源。

CodeCommit 和Amazon CloudFormation模板

要为 CodeCommit 和相关服务设置和配置资源,您必须了解Amazon CloudFormation模板. 模板是 JSON 或 YAML 格式的文本文件。这些模板描述要在 Amazon CloudFormation 堆栈中调配的资源。如果您不熟悉 JSON 或 YAML,可以在 Amazon CloudFormation Designer 的帮助下开始使用 Amazon CloudFormation 模板。有关更多信息,请参阅 Amazon CloudFormation 用户指南中的什么是 Amazon CloudFormation Designer?

CodeCommit 支持在中创建存储库Amazon CloudFormation与从控制台或命令行创建存储库不同,您可以使用Amazon CloudFormation以创建存储库并从 Amazon S3 存储桶中的指定 .zip 文件自动将代码提交到新创建的存储库。有关更多信息(包括存储库的 JSON 和 YAML 模板示例),请参阅AWS::CodeCommit::Repository.

在您使用创建 CodeCommit 存储库时Amazon CloudFormation,您可以选择将代码提交到该存储库,作为创建过程的一部分,方法是在中配置属性Amazon: CodeCommit። CodeCommit. 您可以指定存储代码的 Amazon S3 存储桶,还可以选择使用BranchName 属性以指定在该代码的初始提交中将创建的默认分支的名称。这些属性仅在初始存储库创建时使用,堆栈更新时会忽略这些属性。您不能使用这些属性向仓库进行额外的提交,也不能在初始提交后更改默认分支的名称。

注意

2019 年 1 月 19 日,Amazon将 CodeCommit 中默认分支的名称更改为主人主要的. 此名称更改会影响使用 CodeCommit 控制台、CodeCommit API、AmazonSDK 和Amazon CLI. 使用创建的仓库Amazon CloudFormation或者Amazon CDK最初提交的代码作为创建的一部分,与 2021 年 3 月 4 日开始的这一更改保持一致. 此更改不会影响现有存储库或分支。使用本地 Git 客户端创建初始提交的客户具有默认分支名称,该名称跟随这些 Git 客户端的配置。有关更多信息,请参阅 。使用分支创建提交, 和更改分支设置.

您还可以创建创建相关资源的模板,例如通知规则对于存储库,Amazon CodeBuild构建项目Amazon CodeDeploy应用程序, 和Amazon CodePipeline管道.

模板示例

以下示例创建一个名为的 CodeCommit 存储库MyDemoRepo. 新创建的存储库使用存储在名为 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.

Amazon CloudFormation、CodeCommit 和Amazon Cloud Development Kit (CDK)

使用Amazon CDK使用Amazon CloudFormation创建中的功能。了解的方式Amazon CloudFormation使用 CodeCommit 资源的模板可帮助您创建和管理Amazon CDK代码。有关的更多信息Amazon CDK,请参阅Amazon Cloud Development Kit (CDK)开发人员指南Amazon CDKAPI 参考。

以下Amazon CDKTypescript 示例创建一个名为的 CodeCommit 存储库MyDemoRepo. 新创建的存储库使用存储在名为 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" } }, } ); } }

了解有关 Amazon CloudFormation 的更多信息

要了解有关 Amazon CloudFormation 的更多信息,请参阅以下资源: