を使用した CodeCommit リソースの作成 AWS CloudFormation - AWS CodeCommit

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

を使用した CodeCommit リソースの作成 AWS CloudFormation

AWS CodeCommit は と統合されています。これは AWS CloudFormation、 AWS リソースとインフラストラクチャの作成と管理に費やす時間を短縮できるように、リソースのモデル化とセットアップに役立つサービスです。必要なすべての AWS リソース (リポジトリなど) を記述するテンプレートを作成し、それらのリソースを CloudFormation プロビジョニングして設定します。

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

CodeCommit と CloudFormation テンプレート

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

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

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

注記

2021 年 1 月 19 日、 は CodeCommit のデフォルトブランチの名前を master から main AWS に変更しました。この名前の変更は、CodeCommit コンソール、CodeCommit APIs、 AWS SDKs、および を使用してリポジトリの初期コミットを作成するときの CodeCommit のデフォルトの動作に影響します AWS CLI。 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 を参照してください。

CloudFormation、CodeCommit、および AWS Cloud Development Kit (AWS CDK)

を使用して作成されたリポジトリは、作成時に CloudFormation 機能 AWS CDK を使用します。 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" } }, } ); } }

の詳細 CloudFormation

詳細については CloudFormation、次のリソースを参照してください。