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

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

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

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

ビルドプロジェクトにテストレポートを追加する場合は、IAMロールに「」で説明されているアクセス許可があることを確認してくださいテストレポートのアクセス許可

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

ビルドプロジェクトの設定を変更するには、次の手順を実行します。

  1. https://console.aws.amazon.com/codesuite/codebuild/home で AWS CodeBuild コンソールを開きます。

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

  3. 次のいずれかを行ってください。

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

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

次のセクションを変更できます。

プロジェクトの設定

[プロジェクトの設定] セクションで、[編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

説明

また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。

ビルドバッジ

[Enable build badge (ビルドバッジを有効にする)] を選択すると、プロジェクトのビルドステータスが表示可能および埋め込み可能になります。詳細については、「ビルドバッジサンプル」を参照してください。

注記

ソースプロバイダーが Amazon S3 の場合、ビルドバッジは適用されません。

同時ビルド制限を有効にする

このプロジェクトで同時ビルド数を制限するには、次の手順を実行します。

  1. [Restrict number of concurrent builds this project can start] (このジョブで許可される同時実行の最大数を設定) を選択します。

  2. [Concurrent build limit] (同時ビルド制限) で、このジョブで許可される同時実行の最大数を設定します。この制限は、アカウントに設定された同時ビルド制限より大きくすることはできません。アカウント制限を超える数値を入力しようとすると、エラーメッセージが表示されます。

新しいビルドは、現在のビルド数がこの制限以下の場合にのみ開始されます。現在のビルドカウントがこの制限を満たす場合、新しいビルドはスロットルされ、実行されません。

パブリックビルドアクセスを有効にする

AWS アカウントにアクセスできないユーザーを含め、プロジェクトのビルド結果を一般公開するには、パブリックビルドアクセスを有効にするを選択し、ビルド結果を公開することを確認します。パブリックビルドプロジェクトでは、次のプロパティが使用されます。

パブリックビルドのサービスロール

新しいサービスロールを作成する場合は新しいサービスロールを選択し、既存のサービスロールを使用する場合は既存のサービスロールを選択します。 CodeBuild

パブリックビルドサービスロールにより CodeBuild 、 は CloudWatch ログを読み取り、プロジェクトのビルドの Amazon S3 アーティファクトをダウンロードできるようになります。これは、プロジェクトのビルドログとアーティファクトを一般に公開するために必要です。

サービスロール

新しいサービスロールまたは既存のサービスロールの名前を入力します。

プロジェクトのビルド結果をプライベートにするには、[Enable public build access] (パブリックビルドアクセスを有効にする) のチェックを外します。

詳細については、「パブリックビルドプロジェクトを取得する URLs」を参照してください。

警告

プロジェクトのビルド結果を一般に公開する際には、以下に留意してください。

  • プロジェクトがプライベートだったときに実行されたビルドも含めて、プロジェクトのビルド結果、ログ、アーティファクトはすべて、一般に公開されます。

  • すべてのビルドログとアーティファクトが一般に公開されます。環境変数、ソースコード、およびその他の機密情報がビルドログとアーティファクトに出力されている可能性があります。ビルドログに出力される情報には注意が必要です。以下にベストプラクティスを示します。

    • 機密値、特に AWS アクセスキーIDsとシークレットアクセスキーを環境変数に保存しないでください。Amazon EC2 Systems Manager パラメータストアまたは を使用して、機密値 AWS Secrets Manager を保存することをお勧めします。

    • ウェブフック使用のベストプラクティス。 に従って、ビルドをトリガーできるエンティティを制限し、buildspec をプロジェクト自体に保存しないことで、Webhook を可能な限り安全に保つことができます。

  • 悪意のあるユーザーがパブリックビルドを利用して、悪意のあるアーティファクトを配信する可能性があります。プロジェクト管理者は、すべてのプルリクエストを確認し、プルリクエストが正当な変更であるか検証することをお勧めします。また、チェックサムを使ってすべてのアーティファクトを検証し、正しいアーティファクトがダウンロードされているか確認することを推奨します。

追加情報

タグ には、サポート AWS サービスで使用するタグの名前と値を入力します。[Add row] を使用して、タグを追加します。最大 50 個のタグを追加できます。

ソース

[ソース] セクションで [編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

ソースプロバイダー

ソースコードプロバイダーのタイプを選択します。次のリストを使用して、ソースプロバイダーに関する適切な選択を行います。

注記

CodeBuild は Bitbucket Server をサポートしていません。

Amazon S3
バケット

ソースコードが格納されている入力バケットの名前を選択します。

S3 オブジェクトキーまたは S3 フォルダ

ZIP ファイルの名前またはソースコードを含むフォルダへのパスを入力します。S3 バケットの中身をすべてダウンロードするには、スラッシュ記号 (/) を入力します。

ソースバージョン

入力ファイルのビルドを表すオブジェクトのバージョン IDを入力。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください。

CodeCommit
リポジトリ

使用するリポジトリを選択します。

参照タイプ

[Branch] (ブランチ) または [Git tag] (Git タグ) を選択するか、[Commit ID] (コミット ID) を入力して、ソースコードのバージョンを指定します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください。

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

Git サブモジュール

リポジトリに Git サブモジュールを含める場合は、[Git サブモジュールを使用する] を選択します。

Bitbucket
認証情報

デフォルトのソース認証情報またはカスタムソース認証情報を選択し、手順に従ってデフォルトのソース認証情報を管理するか、ソース認証情報をカスタマイズします。

接続タイプ

に接続するにはCodeConnectionsOAuth、、アプリパスワード、または個人用アクセストークンを選択します CodeBuild。

Connection

Bitbucket 接続または Secrets Manager シークレットを選択して、指定した接続タイプを介して接続します。

リポジトリ

Bitbucket アカウントまたはパブリックリポジトリのリポジトリを選択し、リポジトリ を入力しますURL。

ソースバージョン

ブランチ、コミット ID、タグあるいはリファレンスとコミット ID を入力します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

[Git のクローンの深さ] を選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

Git サブモジュール

リポジトリに Git サブモジュールを含める場合は、[Git サブモジュールを使用する] を選択します。

ビルドステータス

ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、[Report build statuses to source provider when your builds start and finish] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。

ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「ソースプロバイダーのアクセス」を参照してください。

[Status context] (ステータスコンテキスト) に、Bitbucket コミットステータスの name パラメータに使用する値を記入します。詳細については、Bitbucket APIドキュメントの「ビルド」を参照してください。

ターゲット にはURL、Bitbucket コミットステータスの urlパラメータに使用する値を入力します。詳細については、Bitbucket APIドキュメントの「ビルド」を参照してください。

webhook によってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータス、またはソースプロバイダーに報告された API コールを表示するには、この設定を選択する必要があります。

プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

プライマリソースウェブフックイベント で、コード変更がこのリポジトリにプッシュされるたびにソースコードを構築する場合は、コード変更がこのリポジトリにプッシュされるたびに再構築を選択します。 CodeBuild Webhook およびフィルターグループの詳細については、「Bitbucket ウェブフックイベント」を参照してください。

GitHub
認証情報

デフォルトのソース認証情報またはカスタムソース認証情報を選択し、手順に従ってデフォルトのソース認証情報を管理するか、ソース認証情報をカスタマイズします。

接続タイプ

GitHub アプリ、OAuthまたは個人用アクセストークンを選択して、 に接続します CodeBuild。

Connection

指定した GitHub 接続タイプを介して接続する接続または Secrets Manager シークレットを選択します。

リポジトリ

GitHub アカウント のリポジトリ パブリックリポジトリ 、またはスコープ付きウェブフック を選択し、リポジトリ を入力しますURL。 GitHub

ソースバージョン

ブランチ、コミット ID、タグあるいはリファレンスとコミット ID を入力します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

[Git のクローンの深さ] を選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

Git サブモジュール

リポジトリに Git サブモジュールを含める場合は、[Git サブモジュールを使用する] を選択します。

ビルドステータス

ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、[Report build statuses to source provider when your builds start and finish] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。

ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「ソースプロバイダーのアクセス」を参照してください。

ステータスコンテキスト に、 GitHub コミットステータスの context パラメータに使用する値を入力します。詳細については、「 デベロッパーガイド」の「コミットステータスの作成」を参照してください。 GitHub

ターゲット URLには、 GitHub コミットステータスの target_urlパラメータに使用する値を入力します。詳細については、「 デベロッパーガイド」の「コミットステータスの作成」を参照してください。 GitHub

webhook によってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータス、またはソースプロバイダーに報告された API コールを表示するには、この設定を選択する必要があります。

プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

プライマリソースウェブフックイベント で、コード変更がこのリポジトリにプッシュされるたびにソースコードを構築する場合は、コード変更がこのリポジトリにプッシュされるたびに CodeBuild 再構築を選択します。Webhook およびフィルターグループの詳細については、「GitHub ウェブフックイベント」を参照してください。

GitHub Enterprise Server
認証情報

デフォルトのソース認証情報またはカスタムソース認証情報を選択し、手順に従ってデフォルトのソース認証情報を管理するか、ソース認証情報をカスタマイズします。

接続タイプ

CodeConnections または個人用アクセストークンを選択して、 に接続します CodeBuild。

Connection

GitHub エンタープライズ接続または Secrets Manager シークレットを選択して、指定した接続タイプを介して接続します。

リポジトリ

GitHub エンタープライズアカウントまたはエンタープライズスコープのウェブフックでリポジトリを選択し、リポジトリ を入力しますURL。 GitHub

ソースバージョン

プルリクエスト、ブランチ、コミット ID、コミット ID、参照、およびコミット ID を入力します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください。

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

[Git のクローンの深さ] を選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

Git サブモジュール

リポジトリに Git サブモジュールを含める場合は、[Git サブモジュールを使用する] を選択します。

ビルドステータス

ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、[Report build statuses to source provider when your builds start and finish] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。

ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「ソースプロバイダーのアクセス」を参照してください。

ステータスコンテキスト に、 GitHub コミットステータスの context パラメータに使用する値を入力します。詳細については、「 デベロッパーガイド」の「コミットステータスの作成」を参照してください。 GitHub

ターゲット URLには、 GitHub コミットステータスの target_url パラメータに使用する値を入力します。詳細については、「 デベロッパーガイド」の「コミットステータスの作成」を参照してください。 GitHub

webhook によってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータス、またはソースプロバイダーに報告された API コールを表示するには、この設定を選択する必要があります。

プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

安全でない SSL

「安全でないを有効にするSSL」を選択して、 GitHub エンタープライズプロジェクトリポジトリへの接続中にSSL警告を無視します。

プライマリソースウェブフックイベント で、コード変更がこのリポジトリにプッシュされるたびにソースコードを構築する場合は、コード変更がこのリポジトリにプッシュされるたびに再構築を選択します。 CodeBuild Webhook およびフィルターグループの詳細については、「GitHub ウェブフックイベント」を参照してください。

GitLab
認証情報

デフォルトのソース認証情報またはカスタムソース認証情報を選択し、手順に従ってデフォルトのソース認証情報を管理するか、ソース認証情報をカスタマイズします。

接続タイプ

CodeConnections は GitLab への接続に使用されます CodeBuild。

Connection

を介して接続する GitLab 接続を選択します CodeConnections。

リポジトリ

使用するリポジトリを選択します。

ソースバージョン

プルリクエスト ID、ブランチ、コミット ID、タグ、またはリファレンスとコミット ID を入力します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください。

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

[Git のクローンの深さ] を選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

ビルドステータス

ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、[Report build statuses to source provider when your builds start and finish] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。

ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「ソースプロバイダーのアクセス」を参照してください。

GitLab Self Managed
認証情報

デフォルトのソース認証情報またはカスタムソース認証情報を選択し、手順に従ってデフォルトのソース認証情報を管理するか、ソース認証情報をカスタマイズします。

接続タイプ

CodeConnections は、 GitLab セルフマネージド を に接続するために使用されます CodeBuild。

Connection

経由で接続する GitLab セルフマネージド接続を選択します CodeConnections。

リポジトリ

使用するリポジトリを選択します。

ソースバージョン

プルリクエスト ID、ブランチ、コミット ID、タグ、またはリファレンスとコミット ID を入力します。詳細については、「を使用したソースバージョンサンプル AWS CodeBuild」を参照してください。

注記

811dd1ba1aba14473856cee38308caed7190c0d や などIDs、コミット のように見えない Git ブランチ名を選択することをお勧めします5392f7。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

Git クローンの深度

[Git のクローンの深さ] を選択して、指定されるコミット数で切り捨てられる履歴の浅いクローンを作成します。完全クローンを希望する場合には、[Full (完全)] を選択します。

ビルドステータス

ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、[Report build statuses to source provider when your builds start and finish] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。

ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「ソースプロバイダーのアクセス」を参照してください。

環境

[環境] セクションで、[編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

プロビジョニングモデル

プロビジョニングモデルを変更するには、プロビジョニングモデルの変更を選択し、次のいずれかを実行します。

  • によって管理されるオンデマンドフリートを使用するには AWS CodeBuild、オンデマンド を選択します。オンデマンドフリートでは、 CodeBuild はビルドのコンピューティングを提供します。マシンはビルドが終了すると破棄されます。オンデマンドフリートはフルマネージド型で、需要の急増にも対応できる自動スケーリング機能を備えています。

  • によって管理されるリザーブドキャパシティフリートを使用するには AWS CodeBuild、リザーブドキャパシティ を選択し、フリート名 を選択します。リザーブドキャパシティフリートでは、ビルド環境に合わせて専有インスタンスのセットを設定します。これらのマシンはアイドル状態のままで、ビルドやテストをすぐに処理できる状態になり、ビルド時間を短縮します。リザーブドキャパシティフリートでは、マシンは常に稼働しており、プロビジョニングされている間はコストが発生し続けます。

詳細については、リザーブドキャパシティフリートでビルドを実行する を参照してください。

環境イメージ

ビルドイメージを変更するには、[イメージの上書き] を選択し、次のいずれかを実行します。

  • によって管理される Docker イメージを使用するには AWS CodeBuild、マネージドイメージ を選択し、オペレーティングシステム ランタイム (s)イメージ イメージバージョン から選択します。利用可能な場合は、[環境タイプ] から選択します。

  • 別の Docker イメージを使用するには、[カスタムイメージ] を選択します。環境タイプ で、、LinuxARMLinuxGPU、または Windows を選択します。その他のレジストリ を選択した場合は、外部レジストリ URLに、形式 を使用して Docker Hub で Docker イメージの名前とタグを入力しますdocker repository/docker image nameAmazon を選択した場合は、Amazon ECRECRリポジトリAmazon ECRイメージを使用して、 AWS アカウントの Docker イメージを選択します。

  • プライベート Docker イメージを使用するには、[カスタムイメージ] を選択します。環境タイプ で、、LinuxARMLinuxGPU、または Windows を選択します。イメージレジストリ で、その他のレジストリ を選択し、プライベート Docker イメージARNの認証情報の を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、AWS Secrets Manager ユーザーガイドの「AWS Secrets Managerとは」を参照してください。

注記

CodeBuild は、カスタム Docker イメージENTRYPOINTの を上書きします。

サービスロール

次のいずれかを行います。

  • CodeBuild サービスロールがない場合は、新しいサービスロール を選択します。[Role name] に、新しいロールの名前を入力します。

  • CodeBuild サービスロールがある場合は、「既存のサービスロール」を選択します。ロール ARNで、サービスロールを選択します。

注記

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

追加設定
タイムアウト

5 分から 36 時間までの値を指定します。その後、完了していない場合はビルド CodeBuild が停止します。[hours] と [minutes] を空白のままにすると、デフォルト値の 60 分が使用されます。

特権付与

Docker イメージをビルドする場合、またはビルドに昇格された権限を付与する場合は、このフラグを有効にするを選択します。このビルドプロジェクトを使用して Docker イメージをビルドする予定がある場合に限ります。それ以外の場合、関連付けられているビルドで Docker デーモンと通信しようとすると、すべて失敗します。ビルドが Docker デーモンと連係動作できるように、Docker デーモンも起動する必要があります。これを行う 1 つの方法は、次のビルドコマンドを実行してビルドスペックの install フェーズで Docker デーモンを初期化することです。Docker サポートで が提供するビルド環境イメージを選択した場合は CodeBuild 、これらのコマンドを実行しないでください。

注記

デフォルトでは、Docker デーモンは VPC以外のビルドで有効になっています。VPC ビルドに Docker コンテナを使用する場合は、Docker Docs ウェブサイトの「ランタイム権限と Linux 機能」を参照して、特権モードを有効にします。また、Windows は特権モードをサポートしていません。

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
VPC

CodeBuild を使用する場合VPC:

  • にはVPC、 が CodeBuild 使用する VPC ID を選択します。

  • VPC サブネット で、 が CodeBuild 使用するリソースを含むサブネットを選択します。

  • VPC セキュリティグループ で、 CodeBuild が 内のリソースへのアクセスを許可するために使用するセキュリティグループを選択しますVPCs。

詳細については、「Amazon Virtual Private Cloud AWS CodeBuild で を使用する」を参照してください。

コンピューティング

使用可能なオプションの 1 つを選択します。

環境変数

[環境変数] で、名前と値を入力してから、ビルドによって使用される各環境変数の種類を選択します。

注記

CodeBuild は、 AWS リージョンの環境変数を自動的に設定します。以下の環境変数を buildspec.yml に追加していない場合は、それらの変数を設定する必要があります。

  • AWS_ACCOUNT_ID

  • IMAGE_REPO_NAME

  • IMAGE_TAG

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

アクセスキー ID、 AWS シークレット AWS アクセスキー、パスワードなどの機密性の高い値を持つ環境変数をパラメータとして Amazon EC2 Systems Manager パラメータストアまたは に保存することをお勧めします AWS Secrets Manager。

Amazon EC2 Systems Manager パラメータストアを使用する場合、タイプ パラメータ を選択します。名前 に、参照 CodeBuild する の識別子を入力します。 には、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータの名前を入力します。たとえば、/CodeBuild/dockerLoginPassword という名前のパラメータを使用して、[タイプ] で [Parameter (パラメータ)] を選択します。[Name (名前)] に LOGIN_PASSWORD と入力します。[Value (値)] に「/CodeBuild/dockerLoginPassword」と入力します。

重要

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

ビルドプロジェクトが Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照している場合、ビルドプロジェクトのサービスロールで ssm:GetParametersアクションを許可する必要があります。以前に新しいサービスロールを選択した場合、 はビルドプロジェクトのデフォルトのサービスロールにこのアクション CodeBuild を含めます。ただし [既存のサービスロール] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。

ビルドプロジェクトで、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータで、 で始まらないパラメータ名が参照されており/CodeBuild/新しいサービスロール を選択した場合は、 で始まらないパラメータ名へのアクセスを許可するように、そのサービスロールを更新する必要があります/CodeBuild/。これは、サービスロールで、/CodeBuild/ で始まるパラメータ名にのみアクセスが許可されるためです。

新しいサービスロール を選択した場合、サービスロールには、Amazon EC2 Systems Manager パラメータストア/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_ で始まる名前の環境変数は設定しないでください。このプレフィックスは内部使用のために予約されています。

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

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

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

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

Secrets Manager を使用する場合は、[Type] (タイプ) で、[Secrets Manager] を選択します。名前 に、参照 CodeBuild する の識別子を入力します。[Value (値)] に、パターン reference-key を使用して secret-id:json-key:version-stage:version-id を入力します。詳細については、Secrets Manager reference-key in the buildspec file を参照してください。

重要

Secrets Manager を使用する場合は、「/CodeBuild/」で始まる名前でシークレットを保存することをお勧めします(たとえば、/CodeBuild/dockerLoginPassword)。詳細については、 AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。

ビルドプロジェクトが Secrets Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで secretsmanager:GetSecretValue アクションを許可する必要があります。以前に新しいサービスロールを選択した場合、 はビルドプロジェクトのデフォルトのサービスロールにこのアクション CodeBuild を含めます。ただし [既存のサービスロール] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。

ビルドプロジェクトが、/CodeBuild/ で始まらないパラメータ名を持つ、Secrets Manager に保存されているパラメータを参照し、[新しいサービスロール] を選択した場合、/CodeBuild/ で始まらないシークレット名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールで、/CodeBuild/ で始まるシークレット名にのみアクセスが許可されるためです。

[新しいサービスロール] を選択した場合、作成されるサービスロールには、Secrets Manager の /CodeBuild/ 名前空間ですべてのシークレットを復号するアクセス許可が含まれます。

Buildspec

[Buildspec] セクションで、[編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

ビルド仕様

次のいずれかを行ってください。

  • ソースコードにビルド仕様ファイルが含まれている場合は、[Use a buildspec file (buildspec ファイルを使用)] を選択します。デフォルトでは、 CodeBuild はソースコードのルートディレクトリbuildspec.ymlで という名前のファイルを検索します。buildspec ファイルが別の名前または場所を使用している場合は、ソースルートからのパスを Buildspec 名 (例: buildspec-two.ymlまたは ) に入力しますconfiguration/buildspec.yml。 buildspec ファイルが S3 バケットにある場合は、ビルドプロジェクトと同じ AWS リージョンに存在する必要があります。 を使用して buildspec ファイルを指定します ARN (例: arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml)。

  • ソースコードにビルド仕様ファイルが含まれていない場合、または、ソースコードのルートディレクトリで build ファイルの buildspec.yml フェーズに指定されているものと異なるビルドコマンドを実行する場合は、[ビルドコマンドの挿入] を選択します。[ビルドコマンド] に、build フェーズで実行するコマンドを入力します。複数のコマンドについては、&& で各コマンドを区切ります (例: mvn test && mvn package)。他のフェーズでコマンドを実行する場合、または build フェーズのコマンドの長いリストがある場合は、ソースコマンドのルートディレクトリに buildspec.yml ファイルを追加し、ファイルにコマンドを追加してから、[Use the buildspec.yml in the source code root directory] (ソースコードのルートディレクトリの 「buildspec.yml」を使用) を選択します。

詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

Batch 構成

[バッチ構成] セクションで、[編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。詳細については、「ビルドをバッチで実行する」を参照してください。

次のプロパティを変更できます。

Batch サービスロール

バッチビルドのサービスロールを提供します。

次のいずれかを選択します。

  • バッチサービスロールがない場合は、[New service role] (新しいサービスロール) を選択します。[Service role] (サービスロール) に、新しいロールの名前を入力します。

  • バッチサービスロールがある場合は、[Existing service role] (既存のサービスロール) を選択します。[Service role] (サービスロール) で、サービスロールを選択します。

バッチビルドでは、バッチ設定に新しいセキュリティロールが導入されます。この新しいロールは、 CodeBuild がユーザーに代わって StartBuildStopBuild、および RetryBuildアクションを呼び出して、バッチの一部としてビルドを実行できるようにするために必要です。次の2つの理由により、お客様はビルドで使用するものと同じロールではなく、新しいロールを使用する必要があります。

  • ビルドの役割を与える StartBuildStopBuild、および RetryBuild アクセス権限を使用すると、単一のビルドが buildspec を介してより多くのビルドを開始することができます。

  • CodeBuild バッチビルドでは、バッチ内のビルドに使用できるビルドとコンピューティングタイプの数を制限する制限があります。ビルドロールにこれらの権限がある場合、ビルド自体がこれらの制限を回避する可能性があります。

バッチに使用できる計算タイプ

バッチに使用できる計算タイプを選択します。該当するものをすべて選択します。

バッチで許可される最大ビルド

バッチで許可されるビルドの最大数を入力します。バッチがこの制限を超えると、バッチは失敗します。

バッチのタイムアウト

バッチビルドが完了する最大時間を入力します。

アーティファクトの結合

[Combine all artifacts from batch into a single location] (バッチのすべてのアーチファクト) を 1 つの場所に結合するを選択して、バッチのすべてのアーチファクトを単一の場所に結合します。

バッチレポートモード

バッチビルドに対して望ましいビルドステータスレポートモードを選択します。

注記

このフィールドは、プロジェクトソースが Bitbucket GitHub、または GitHub Enterprise の場合にのみ使用でき、ソース でビルドの開始と終了が選択されている場合、ソースプロバイダーにビルドステータスを報告します

集約されたビルド

これを選択して、バッチ内にあるすべてのビルドのステータスを単一のステータスレポートにまとめます。

個々のビルド

これを選択して、バッチ内にあるすべてのビルドのビルドステータスが個別に報告されるようにします。

アーティファクト

[アーティファクト] セクションで、[編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

タイプ

次のいずれかを行ってください。

  • ビルド出力アーティファクトを作成しない場合は、[No artifacts] を選択します。ビルドテストのみを実行している場合や、Docker イメージを Amazon ECRリポジトリにプッシュする場合は、これを行うことをお勧めします。

  • ビルド出力を S3 バケットに保存する場合は、[Amazon S3] を選択して次のいずれかの操作を行います。

    • ビルド出力ZIPファイルまたはフォルダにプロジェクト名を使用する場合は、名前を空白のままにします。それ以外の場合は、名前を入力します。(ZIPファイルを出力し、ZIPファイルにファイル拡張子を付ける場合は、ZIPファイル名の後に必ず含めてください)。

    • buildspec ファイルで指定した名前で、コンソールで指定した名前を上書きする場合は、[Enable semantic versioning (セマンティックバージョニングを有効にする)] を選択します。buildspec ファイル内の名前は、ビルド時に計算され、Shell コマンド言語を使用します。たとえば、アーティファクト名に日付と時刻を追加して常に一意にできます。アーティファクト名を一意にすると、アーティファクトが上書きされるのを防ぐことができます。詳細については、「buildspec の構文」を参照してください。

    • [Bucket name (バケット名)] で、出力バケットの名前を選択します。

    • この手順の前半でビルドコマンドを挿入を選択した場合は、出力ファイル に、ビルド出力ファイルまたはフォルダに入れるビルドのZIPファイルの場所を入力します。複数の場所の場合は、各場所をコンマで区切ります (例: appspec.yml, target/my-app.jar)。詳細については、「files」で buildspec の構文 の説明を参照してください。

    • ビルドアーティファクトを暗号化しない場合は、[アーティファクト暗号化の削除] を選択します。

アーティファクトのセカンダリセットごとに:

  1. [Artifact 識別子] には、英数字とアンダースコアのみを使用して 128 文字未満の値を入力します。

  2. [アーティファクトの追加] を選択します。

  3. セカンダリアーティファクトを設定するには、前のステップに従います。

  4. [アーティファクトの保存] を選択します。

追加設定
暗号化キー

次のいずれかを行います。

  • アカウントで AWS マネージドキー Amazon S3 を使用してビルド出力アーティファクトを暗号化するには、暗号化キーを空白のままにします。これがデフォルトです。

  • カスタマーマネージドキーを使用してビルド出力アーティファクトを暗号化するには、暗号化キー で、カスタマーマネージドキーARNの を入力します。arn:aws:kms:region-ID:account-ID:key/key-ID の形式を使用します。

キャッシュタイプ

[キャッシュタイプ] で、以下のいずれかを選択します。

  • キャッシュを使用しない場合は、[No cache] を選択します。

  • Amazon S3 キャッシュを使用するには、[Amazon S3] を選択して次の操作を行います。

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

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

      重要

      パスのプレフィックスの末尾にスラッシュ (/) を付加しないでください。

  • ローカルキャッシュを使用する場合は、[ローカル] を選択し、ローカルキャッシュモードを 1 つ以上選択します。

    注記

    Docker レイヤーキャッシュモードは Linux でのみ利用可能です。このモードを選択する場合、プロジェクトは権限モードで実行する必要があります。

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

ログ

[ログ] セクションで [編集] を選択します。変更が完了したら、[設定の更新] を選択して新しい設定を保存します。

次のプロパティを変更できます。

作成するログを選択します。Amazon CloudWatch Logs、Amazon S3 ログ、またはその両方を作成できます。

CloudWatch

Amazon CloudWatch Logs ログが必要な場合:

CloudWatch ログ

CloudWatch ログ を選択します。

グループ名

Amazon CloudWatch Logs ロググループの名前を入力します。

ストリーム名

Amazon CloudWatch Logs ログストリーム名を入力します。

S3

Amazon S3 ログが必要な場合は、以下のようになります。

S3 ログ

[S3 logs (S3 ログ)] を選択します。

バケット

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

パスプレフィックス

ログのプレフィックスを入力します。

S3 ログの暗号化を無効にする

S3 ログを暗号化しない場合は、選択します。

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

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

で CodeBuild プロジェクトを更新するには AWS CLI、更新されたプロパティを持つJSONファイルを作成し、そのファイルを update-project コマンドに渡します。更新ファイルに含まれていないプロパティは変更されません。

更新JSONファイルでは、 nameプロパティと変更されたプロパティのみが必要です。name プロパティにより、変更するプロジェクトを識別します。変更された構造については、それらの構造に必要なパラメータも含める必要があります。たとえば、プロジェクトの環境を変更するには、「environment/type」および「environment/computeType」プロパティが必要です。環境イメージを更新する例を次に示します。

{ "name": "<project-name>", "environment": { "type": "LINUX_CONTAINER", "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/amazonlinux2-x86_64-standard:4.0" } }

プロジェクトの現在のプロパティ値を取得する必要がある場合は、batch-get-projects コマンドを使用して、変更するプロジェクトの現在のプロパティを取得し、出力をファイルに書き込みます。

aws codebuild batch-get-projects --names "<project-name>" > project-info.json

- project-info.json ファイルにはプロジェクトの配列が含まれているため、プロジェクトの更新に直接使用することはできません。ただし、変更するプロパティは からコピーできます。project-info.json ファイル を変更したいプロパティのベースラインとして更新ファイルに貼り付けます。詳細については、「ビルドプロジェクトの詳細を表示する (AWS CLI)」を参照してください。

の説明に従って更新JSONファイルを変更しビルドプロジェクトの作成 (AWS CLI)、結果を保存します。更新JSONファイルの変更が完了したら、 update-project コマンドを実行し、更新JSONファイルを渡します。

aws codebuild update-project --cli-input-json file://<update-project-file>

成功すると、更新されたプロジェクトが出力JSONに表示されます。必要なパラメータが欠落している場合は、欠落しているパラメータを識別するエラーメッセージが出力に表示されます。たとえば、このエラーメッセージは、「environment/type」パラメータが無いエラーです。

aws codebuild update-project --cli-input-json file://update-project.json Parameter validation failed: Missing required parameter in environment: "type"

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

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