AWS CloudFormation で CodeCommit リソースを作成する - AWS CodeCommit

AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation で CodeCommit リソースを作成する

AWS CodeCommit は、リソースとインフラストラクチャの作成と管理の所要時間を短縮できるように AWS リソースをモデル化して設定するためのサービスである AWS CloudFormation と統合されています。必要なすべての AWS リソース (リポジトリなど) を説明するテンプレートを作成すれば、AWS CloudFormation がお客様に代わってこれらのリソースのプロビジョニングや設定を処理します。

AWS CloudFormation を使用すると、テンプレートを再利用して CodeCommit リソースを同じように繰り返してセットアップできます。リソースを一度記述するだけで、同じリソースを複数の AWS アカウント とリージョンで何度でもプロビジョニングできます。

CodeCommit および AWS CloudFormation テンプレート

CodeCommit および関連サービスのリソースをプロビジョニングして設定するには、AWS CloudFormation テンプレートについて理解しておく必要があります。テンプレートは、JSON または YAML でフォーマットされたテキストファイルです。これらのテンプレートには、AWS CloudFormation スタックにプロビジョニングしたいリソースを記述します。JSONやYAMLに不慣れな方は、AWS CloudFormation Designerを使えば、 AWS CloudFormation テンプレートを使いこなすことができます。詳細については、AWS CloudFormation ユーザーガイドの「AWS CloudFormation Designer とは」を参照してください。

CodeCommit は AWS CloudFormation でのリポジトリの作成をサポートしています。コンソールやコマンドラインからリポジトリを作成する場合とは異なり、AWS CloudFormation を使用してリポジトリを作成し、新しく作成したリポジトリに Amazon S3 バケット内の指定した .zip ファイルからコードを自動的にコミットできます。リポジトリの JSON および YAML テンプレートの例を含む詳細については、AWS::CodeCommit::Repository を参照してください。

AWS CloudFormation を使用して CodeCommit リポジトリを作成する場合、AWS:CodeCommit::Repository Code でプロパティを設定することにより、アーカイブが 20 MB 未満である限り、作成プロセスの一部として、そのリポジトリにコードをコミットするオプションを使用できます。コードが格納される Amazon S3 バケットを指定し、任意で BranchName プロパティを使用して、そのコードの初期コミットで作成されるデフォルトのブランチの名前を指定できます。これらのプロパティは最初のリポジトリ作成でのみ使用され、スタックの更新時には無視されます。これらのプロパティを使用して、リポジトリに追加のコミットを行ったり、最初のコミットが行われた後にデフォルトブランチの名前を変更したりすることはできません。

注記

2021 年 1 月 19 日、AWS は、CodeCommit のデフォルトブランチの名前を master から main に変更しました。この名前の変更は、CodeCommit コンソール、CodeCommit API、AWS SDK、AWS CLI を使用してリポジトリの初期コミットを作成するときの CodeCommit のデフォルト動作に影響します。コードの最初のコミットを使用して、作成の一部として AWS CloudFormation または AWS CDK で作成されたリポジトリは、2021 年 3 月 4 日以降のこの変更と整合します。この変更は、既存のリポジトリまたはブランチには影響しません。ローカル Git クライアントを使用して初期コミットを作成するお客様は、これらの Git クライアントの設定に続いてデフォルトのブランチ名を持つことになります。詳細については、ブランチを操作するコミットを作成する、およびブランチ設定を変更するを参照してください。

また、関連リソース (リポジトリの 通知ルールAWS CodeBuild ビルドプロジェクトAWS CodeDeploy アプリケーsウォンAWS CodePipeline パイプラインなど) を作成するためのテンプレートを作成することもできます。

テンプレートの例

以下の例では、MyDemoRepo という名前の CodeCommit リポジトリを作成します。新しく作成されたリポジトリには、MySourceCodeBucket という名前の Amazon S3 バケットに保存されたコードが入力され、そのリポジトリは、development という名前のブランチ (リポジトリのデフォルトのブランチ) に配置されます。

注記

新しいリポジトリにコミットされるコンテンツが含まれた ZIP ファイルを含む Amazon S3 バケットの名前は、ARN またはアマゾン ウェブ サービスアカウント内のバケットの名前を使用して指定できます。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 の詳細については、以下のリソースを参照してください。