

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

# を使用した CodeCommit リソースの作成 AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

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

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

## CodeCommit と CloudFormation テンプレート
<a name="working-with-templates"></a>

CodeCommit および関連サービスのリソースをプロビジョニングして設定するには、[CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) テンプレートについて理解しておく必要があります。テンプレートは、JSON や YAML でフォーマットされたテキストファイルです。これらのテンプレートは、 CloudFormation スタックでプロビジョニングするリソースを記述します。JSON または YAML に慣れていない場合は、 CloudFormation デザイナー を使用して CloudFormation テンプレートの使用を開始できます。詳細については、「*AWS CloudFormation ユーザーガイド*」の「[CloudFormation Designer とは](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)」を参照してください。

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

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

**注記**  
2021 年 1 月 19 日、 は CodeCommit のデフォルトブランチの名前を *master* から *main* AWS に変更しました。この名前の変更は、CodeCommit コンソール、CodeCommit APIs、 AWS SDKs、および を使用してリポジトリの初期コミットを作成するときの CodeCommit のデフォルトの動作に影響します AWS CLI。 CloudFormation または で作成され、作成の一環としてコードの初期コミット AWS CDK があるリポジトリは、2021 年 3 月 4 日以降のこの変更と一致します。この変更は、既存のリポジトリまたはブランチには影響しません。ローカル Git クライアントを使用して初期コミットを作成するお客様は、これらの Git クライアントの設定に続いてデフォルトのブランチ名を持つことになります。詳細については、[ブランチを操作する](https://docs.aws.amazon.com/codecommit/latest/userguide/branches.html)、[コミットを作成する](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html)、および[ブランチ設定を変更する](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-change-branch.html)を参照してください。

また、関連リソース (リポジトリの [通知ルール](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html)、[AWS CodeBuild ビルドプロジェクト](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)、[AWS CodeDeploy アプリケーsウォン](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)、[AWS CodePipeline パイプライン](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)など) を作成するためのテンプレートを作成することもできます。

## テンプレートの例
<a name="cloudformation-codecommit-example"></a>

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

**注記**  
新しいリポジトリにコミットされるコンテンツが含まれた ZIP ファイルを含む Amazon S3 バケットの名前は、ARN またはアマゾン ウェブ サービスアカウント内のバケットの名前を使用して指定できます。Amazon S3 オブジェクトキーは、[Amazon S3 デベロッパーガイド](https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#BasicsKeys)で定義されています。

 **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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html) を参照してください。

## CloudFormation、CodeCommit、および AWS Cloud Development Kit (AWS CDK)
<a name="cloudformation-codecommit-cdk"></a>

を使用して作成されたリポジトリは、作成時に CloudFormation 機能 AWS CDK を使用します。 CloudFormation テンプレートが CodeCommit リソースとどのように連携するかを理解することは、 AWS CDK コードの作成と管理に役立ちます。の詳細については AWS CDK、「 [AWS Cloud Development Kit (AWS CDK) デベロッパーガイド](https://docs.aws.amazon.com/cdk/latest/guide/home.html)」および[AWS CDK 「 API リファレンス」を参照してください。](https://docs.aws.amazon.com//cdk/api/v2/docs/aws-cdk-lib.aws_codecommit-readme.html)

次の 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
<a name="learn-more-cloudformation"></a>

詳細については CloudFormation、次のリソースを参照してください。
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS CloudFormation コマンドラインインターフェイスユーザーガイド](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)