AWS CodeBuild
ユーザーガイド (API バージョン 2016-10-06)

このガイドの手順では、新しいコンソールデザインがサポートされています。古いバージョンのコンソールを選択すると、古い概念が反映され、本ガイドの基本的な手順がそのまま適用されます。新しいコンソールのヘルプにアクセスするには、情報アイコンを選択します。

AWS CodeBuild でビルドプロジェクトの設定を変更する

ビルドプロジェクトの設定を変更するには、AWS CodeBuild コンソール、AWS CLI、または AWS SDK を使用します。

ビルドプロジェクトの設定を変更する (コンソール)

  1. ナビゲーションペインで、[Build projects] を選択します。

  2. 以下のいずれかを行います。

    • 変更するビルドプロジェクトのリンクを選択し、[ビルドの詳細] を選択します。

    • 変更するビルドプロジェクトの横にあるラジオボタンを選択して、[View details (詳細を表示)] を選択後 [ビルドの詳細] を選択します。

    注記

    デフォルトでは、最新の 100 個のビルドプロジェクトが表示されます。さらに多くのビルドプロジェクトを表示するには、[Projects per page] で別の値を選択するか、[Viewing projects] で前後の矢印を選択します。

  3. プロジェクトの説明を変更するには、[Project configuration (プロジェクトの設定)] の [Edit (編集)] を選択し、[説明] に説明を入力します。

    [Update configuration (設定の更新)] を選択します。

    この手順ので参照される設定の詳細については、「ビルドプロジェクトの作成 (コンソール)」を参照してください。

  4. ソースコードの場所に関する情報を変更するには、[Source (ソース)] で [Edit (編集)] を選択します。次の表を使用して、ソースプロバイダーに適した選択を行い、[ソースの更新] を選択します。

    For Bucket, choose the name of the input bucket that contains the source code.

    X

    For S3 object key, type the name of the ZIP file that contains the source code.

    X

    Choose Connect to Bitbucket and follow the instructions to connect (or reconnect) with Bitbucket.

    X

    Choose Connect to GitHub and follow the instructions to connect (or reconnect) with GitHub and authorize access to AWS CodeBuild.

    X

    For Personal Access token, see GitHub Enterprise のサンプル for information about how to copy a personal access token to your clipboard. Paste the token in the text field, and then choose Save Token.

    注記

    You only need to enter and save the personal access token once. All future AWS CodeBuild projects will use this token.

    X

    From Repository, choose the repository you want to use.

    X

    For Repository, choose whether to use a public repository or a repository in your account.

    X X

    Use Repository URL only if you use a public repository. Enter its URL.

    X X

    Use Choose a repository only if you use a repository in your account.

    X X

    Choose Git clone depth to create a shallow clone with a history truncated to the specified number of commits. If you want a full clone, choose Full.

    X X X X

    Choose Webhook if you want AWS CodeBuild to build the source code every time a code change is pushed to this repository.

    X X

    If you chose Webhook, in Branch filter, enter a regular expression filter to specify which branches are built. If the name of a branch matches the branch filter, the branch is built. If no filter is specified, all branches are built.

    X X

    Choose Report build status, if you want the status of your build's start and completion reported to your source provider.

    注記

    The status of a build triggered by a webhook is always reported to your source provider.

    X

    If you chose Webhook, choose Rotate webhook secret key if you want GitHub to rotate your secret key every time a code change triggers a build.

    X X

    Choose Insecure SSL to ignore SSL warnings while connecting to your GitHub Enterprise project repository.

    X

    Choose Build Badge to make your project's build status visible and embeddable. For more information, see ビルドバッジサンプル.

    X X X X
  5. ビルド環境に関する情報を変更するには、[Environment (環境)] の [Edit (編集)] を選択します。ビルド環境タイプ (例: [環境イメージ]、[オペレーティングシステム]、[ランタイム]、[ランタイムバージョン]、[Custom image (カスタムイメージ)]、[Other location (その他の場所)]、[Amazon ECR リポジトリ (Amazon ECR リポジトリ)]、[Amazon ECR image (Amazon ECR イメージ)]) に適切な変更を行います。

  6. このビルドプロジェクトを使用して Docker イメージを作成し、指定したビルド環境イメージが Docker サポート付きの AWS CodeBuild によって提供されない場合、[Privileged (特権付与)] を選択します。それ以外の場合、関連付けられているビルドで Docker デーモンと通信しようとすると、すべて失敗します。必要に応じて、ビルドで Docker デーモンを操作できるように、Docker デーモンも起動する必要があります。そのためには、次のビルドコマンドを実行して、ビルド仕様の install フェーズで Docker デーモンを初期化します。(Docker をサポートする AWS CodeBuild に用意されているビルド環境イメージを指定した場合は、以下のビルドコマンドを実行しないでください。)

    - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay& - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"
  7. AWS CodeBuild サービスロールに関する情報を変更するには、[サービスロール] で、[New service role (新しいサービスロール)]、[Existing service role (既存のサービスロール)]、または [Role name (ロール名)] の値を変更します。

    注記

    コンソールでは、ビルドプロジェクトの作成時や更新時に AWS CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。

  8. ビルドタイムアウトに関する情報を変更するには、[Additional configuration (追加設定)] で、[タイムアウト] の [時間] と [] の値を変更します。[hours] と [minutes] が空白のままの場合、デフォルト値は 60 分になります。

  9. VPC に関する情報を変更するには、[Additional configuration (追加の設定)] を変更し、[VPC]、[サブネット]、および [セキュリティグループ] の値を変更します。

  10. ビルドの実行に使用するメモリと vCPU の量を変更するには、[Additional configuration (追加設定)] で、[Compute (コンピューティング)] の値を変更します。

  11. ビルドに使用する環境変数に関する情報を変更するには、[Additional configuration (追加設定)] で、[環境変数] の、[名前]、[]、および [タイプ] の値を変更します。[Add row] を使用して環境変数を追加します。もう使用しない環境変数の横にある削除 (X) ボタンを選択します。

    他のユーザーは、AWS CodeBuild コンソールと AWS CLI を使用して環境変数を確認できます。環境変数の表示に懸念がない場合は、[Name] および [Value] フィールドを設定し、[Type] を [Plaintext] に設定します。

    Amazon EC2 Systems Manager パラメータストアには、AWS アクセスキー ID、AWS シークレットアクセスキー、またはパスワードなどの機密値を持つ環境変数をパラメータとして保存することをお勧めします。[Type] で [Parameter Store] を選択します。[名前] に、参照する AWS CodeBuild の識別子を入力します。[] に、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータの名前を入力します。たとえば、/CodeBuild/dockerLoginPassword という名前のパラメータを使用して、[Type] で [Parameter Store] を選択します。[名前] に「LOGIN_PASSWORD」と入力します。[] に「/CodeBuild/dockerLoginPassword」と入力します。

    重要

    パラメータは /CodeBuild/ で始まるパラメータ名 (例: /CodeBuild/dockerLoginPassword) で、Amazon EC2 Systems Manager パラメータストアに保存することをお勧めします。AWS CodeBuild コンソールを使用して Amazon EC2 Systems Manager にパラメータを作成することができます。[Create a parameter (パラメータの作成)] を選択し、手順に従います。(ダイアログボックスでは、[KMS キー] の場合、オプションでアカウントの AWS KMS キーの ARN を指定できます。Amazon EC2 Systems Manager では、このキーを使用して、保存中にパラメータの値を暗号化し、取得中に復号します。) AWS CodeBuild コンソールを使用してパラメータを作成した場合、コンソールは保存されている /CodeBuild/ パラメータ名を開始します。詳細については、「Amazon EC2 Systems Manager ユーザーガイド」の「Systems Manager パラメータストア」および「Systems Manager パラメータストアコンソールのチュートリアル」を参照してください。

    ビルドプロジェクトが Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで ssm:GetParameters アクションを許可する必要があります。以前に [Create a service role in your account (アカウントでサービスロールを作成)] を選択した場合、AWS CodeBuild では、ビルドプロジェクトのデフォルトのサービスロールにこのアクションが自動的に含められます。ただし [Choose an existing service role from your account] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。

    ビルドプロジェクトが、/CodeBuild/ で始まらないパラメータ名を持つ、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照し、[Create a service role in your account (アカウントでサービスロールを作成)] を選択した場合、/CodeBuild/ で始まらないパラメータ名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールが /CodeBuild/ で始まるパラメータ名にのみアクセスできるためです。

    既存の環境変数は、設定した環境変数により置き換えられます。たとえば、Docker イメージに my_value の値を持つ MY_VAR という名前の環境変数が既に含まれていて、other_value の値を持つ MY_VAR という名前の環境変数を設定した場合、my_valueother_value に置き換えられます。同様に、Docker イメージに /usr/local/sbin:/usr/local/bin の値を持つ PATH という名前の環境変数が既に含まれていて、$PATH:/usr/share/ant/bin の値を持つ PATH という名前の環境変数を設定した場合、/usr/local/sbin:/usr/local/bin はリテラル値 $PATH:/usr/share/ant/bin に置き換えられます。

    CODEBUILD_ で始まる名前の環境変数は設定しないでください。このプレフィックスは内部使用のために予約されています。

    同じ名前の環境変数が複数の場所で定義されている場合は、その値は次のように決定されます。

    • ビルド開始オペレーション呼び出しの値が最も優先順位が高くなります。

    • ビルドプロジェクト定義の値が次に優先されます。

    • ビルド仕様宣言の値の優先順位が最も低くなります。

  12. このビルドプロジェクトのタグに関する情報を変更するには、[Additional configuration (追加設定)] で、[タグ] の、[名前] と [] の値を変更します。[Add row] を使用して、タグを追加します。最大 50 個のタグを追加できます。もう使用しないタグの横にある削除 (X) アイコンを選択します。

  13. [Update environment (環境の更新)] を選択します。

  14. プロジェクトのビルド仕様を変更するには、[Buildspec] の [Edit (編集)] を選択します。

    • 以前のソースコードには buildspec.yml ファイルが含まれていなかったが、現在は含まれている場合は、[buildspec.yml] を選択します。

    • 以前は、ソースコードに buildspec.yml ファイルが含まれていたが現在は含まれていない場合、[ビルドコマンドの挿入] を選択し、[ビルドコマンド] にコマンドを入力します。

  15. [Update buildspec (buildspec の更新)] を選択します。

  16. ビルド出力アーティファクトの場所と名前に関する情報を変更するには、[アーティファクト] で、[Edit (編集)] を選択し、[タイプ]、[名前]、[パス]、[名前空間のタイプ]、または [バケット名] の値を変更します。

  17. AWS KMS カスタマーマスターキー (CMK) に関する情報を変更するには、[Additional configuration (追加設定)] の [暗号化キー] の値を変更します。

    重要

    [暗号化キー] を空白のままにした場合、AWS CodeBuild は代わりに AWS アカウントの Amazon S3 用 AWS 管理 CMK を使用します。

  18. キャッシュに関する情報を変更するには、[Additional configuration (追加設定)] を展開します。[Cache type (キャッシュタイプ)] で、次のいずれかの操作を行います。

    • 以前にキャッシュを選択したが今はキャッシュを使用しない場合、[No cache (キャッシュなし)] を選択します。

    • 以前に [No cache (キャッシュなし)] を選択したが今はキャッシュを使用する場合は、[Amazon S3] を選択し、次のいずれかを実行します。

      • [Cache bucket (キャッシュバケット)] では、キャッシュが保存される Amazon S3 バケットの名前を選択します。

      • (オプション) [Cache path prefix (キャッシュパスのプレフィックス)] に、Amazon S3 パスプレフィックスを入力します。[Cache path prefix (キャッシュパスのプレフィックス)] 値は、バケット内の同じディレクトリにキャッシュを保存できるディレクトリ名に似ています。

        重要

        [Path prefix] の末尾に「/」を追加しないでください。

    キャッシュを使用すると、再利用可能なビルド環境がキャッシュに保存され、ビルド全体で使用されるため、かなりのビルド時間が節約されます。ビルド仕様ファイルのキャッシュの指定に関する詳細については、「ビルド仕様の構文」を参照してください。

  19. ログ設定を変更するには、[ログ] で、[CloudWatch ログ] と [S3 ログ] をオンまたはオフにします。

    [CloudWatch logs (CloudWatch ログ)] を有効にする場合。

    • [Group name (グループ名)] に Amazon CloudWatch Logs グループの名前を入力します。

    • [Stream name (ストリーム名)] に Amazon CloudWatch Logs ストリーム名を入力します。

    [S3 logs (S3 ログ)] を有効にする場合。

    • [バケット] で、ログを保存する S3 バケットの名前を選択します。

    • [パスのプレフィックス] で、ログのプレフィックスを入力します。

  20. ビルド出力アーティファクトの保存方法に関する情報を変更するには、[Additional configuration (追加設定)] で、[Artifacts packaging (アーティファクトのパッケージ化)] の値を変更します。

  21. ビルドアーティファクトを暗号化するかどうかを変更するには、[Disable artifacts encryption (アーティファクトの暗号化を無効にする)] を使用します。

  22. [Update artifacts (アーティファクトの更新)] を選択します。

ビルドプロジェクトの設定を変更する (AWS CLI)

AWS CLI を AWS CodeBuild と組み合わせて使用する方法については、「コマンドラインリファレンス」を参照してください。

  1. 次のように update-project コマンドを実行します。

    aws codebuild update-project --generate-cli-skeleton

    JSON 形式のデータが出力に表示されます。AWS CLI がインストールされているローカルコンピュータまたはインスタンス上の場所にあるファイル (例: update-project.json) にデータをコピーします。次に、「ビルドプロジェクトを作成する (AWS CLI)」の説明に従って、コピーしたデータを変更して、結果を保存します。

    注記

    JSON 形式のデータでは、ビルドプロジェクトの名前を指定する必要があります。その他のすべての設定はオプションです。ビルドプロジェクトの名前を変更することはできませんが、他の設定を変更することはできます。

  2. 先ほど保存したファイルがあるディレクトリに移動し、update-project コマンドをもう一度実行します。

    aws codebuild update-project --cli-input-json file://update-project.json
  3. 成功した場合は、「ビルドプロジェクトを作成する (AWS CLI)」で説明されているのと同様のデータが出力に表示されます。

ビルドプロジェクトの設定を変更する (AWS SDK)

AWS CodeBuild を AWS SDK と組み合わせて使用する方法については、「AWS SDK とツールのリファレンス」を参照してください。