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

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

  1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

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

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

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

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

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

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

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

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

    注記

    CodeBuild does not support Bitbucket Server.

    Amazon S3
    バケット

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

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

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

    ソースバージョン

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

    CodeCommit
    Repository

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

    リファレンスタイプ

    ソースコードのバージョンを指定するにはブランチGit タグ、またはコミット ID を選択します。詳細については、を参照してください AWS CodeBuild のソースバージョンのサンプル

    Git のクローンの深さ

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

    Git サブモジュールを使用する

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

    Bitbucket
    Repository

    [Connect using ( を使用して接続)] OAuth または [Connect with a Bitbucket (Bitbucket のアプリパスワードを使用して接続)] を選択し、手順に従って Bitbucket に接続 (または再接続) します。

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

    ソースバージョン

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

    Git のクローンの深さ

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

    Git サブモジュールを使用する

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

    ビルドの開始と完了のステータスをソースプロバイダーにレポートする場合は、ビルドの開始と終了をソースプロバイダーにレポートするときに、[ビルドのステータスをソースプロバイダーにレポートする] を選択します。

    注記

    ウェブフックによってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。

    コードの変更がこのリポジトリにプッシュされるたびにソースコードをビルドする場合、[Rebuild every time a code change is pushed to this repository (コードの変更がこのリポジトリにプッシュされるたびに再構築)] を選択します。CodeBuildウェブフックは、独自の GitHub Bitbucket、 、または GitHub Enterprise リポジトリでのみ許可されます。

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

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

    コードの変更がこのリポジトリにプッシュされるたびに再構築を行う場合は、[イベントタイプ] で、ビルドをトリガーするイベントを選択します。フィルタを作成するには正規表現を使用します。フィルタを指定しない場合、プルリクエストのすべての更新および作成と、すべてのプッシュイベントで、ビルドがトリガーされます。詳細については、「GitHubウェブフックイベント」および「Bitbucket ウェブフックイベント」を参照してください。

    GitHub
    Repository

    [Connect using ( を使用して接続OAuth)] または [GitHubConnect with a personal access token (個人用アクセストークンで接続する)] を選択し、手順に従って に接続(または再接続)GitHubして、 へのアクセスを許可AWS CodeBuildします。

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

    ソースバージョン

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

    Git のクローンの深さ

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

    Git サブモジュールを使用する

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

    ビルドの開始と完了のステータスをソースプロバイダーにレポートする場合は、ビルドの開始と終了のときに [ビルドのステータスをソースプロバイダーにレポートする] を選択します。

    注記

    ウェブフックによってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。

    コードの変更がこのリポジトリにプッシュされるたびに がソースコードをビルドする場合、[Rebuild every time a code change is pushed to this repository (コードの変更がこのリポジトリにプッシュされるたびに再構築)] を選択します。CodeBuildウェブフックは、独自の GitHub Bitbucket、 、または GitHub Enterprise リポジトリでのみ許可されます。

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

    [Target URL (ターゲット URL)] にtarget_urlコミットステータスのGitHubパラメータに使用される値を入力します。詳細については、開発者ガイドの「コミットステータスGitHubの作成」を参照してください。

    コードの変更がこのリポジトリにプッシュされるたびに再構築を行う場合は、[イベントタイプ] で、ビルドをトリガーするイベントを選択します。フィルタを作成するには正規表現を使用します。フィルタを指定しない場合、プルリクエストのすべての更新および作成と、すべてのプッシュイベントで、ビルドがトリガーされます。詳細については、「GitHubウェブフックイベント」および「Bitbucket ウェブフックイベント」を参照してください。

    GitHub Enterprise Server
    GitHub エンタープライズ個人用のアクセストークン

    個人用アクセストークンをクリップボードにコピーする方法については、「」を参照してください。GitHubエンタープライズサーバーのサンプルテキストフィールドにトークンを貼り付け、[トークンの保存] を選択します。

    注記

    個人用アクセストークンは、一回のみ入力して保存する必要があります。CodeBuild では、以降のすべてのプロジェクトにこのトークンを使用します。

    ソースバージョン

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

    Git のクローンの深さ

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

    Git サブモジュールを使用する

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

    ビルドステータス

    ビルドの開始と完了のステータスをソースプロバイダーにレポートする場合は、ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートするをオンにします。

    注記

    ウェブフックによってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。

    安全でない SSL

    GitHubEnterprise プロジェクトリポジトリに接続するときの SSL 警告を無視することを選択します。

    コードの変更がこのリポジトリにプッシュされるたびにソースコードをビルドする場合、[Rebuild every time a code change is pushed to this repository (コードの変更がこのリポジトリにプッシュされるたびに再構築)] を選択します。CodeBuildウェブフックは、独自の GitHub Bitbucket、 、または GitHub Enterprise リポジトリでのみ許可されます。

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

    [Target URL (ターゲット URL)] にtarget_urlコミットステータスのGitHubパラメータに使用される値を入力します。詳細については、開発者ガイドの「コミットステータスGitHubの作成」を参照してください。

    コードの変更がこのリポジトリにプッシュされるたびに再構築を行う場合は、[イベントタイプ] で、ビルドをトリガーするイベントを選択します。フィルタを作成するには正規表現を使用します。フィルタを指定しない場合、プルリクエストのすべての更新および作成と、すべてのプッシュイベントで、ビルドがトリガーされます。詳細については、「GitHubウェブフックイベント」および「Bitbucket ウェブフックイベント」を参照してください。

    このプロジェクトで使用するサービスロールを CodeBuild で変更できるかどうかを変更するには、[AWS CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする] をオンまたはオフにします。オフにする場合は、CodeBuild のアクセス許可がアタッチされたサービスロールを使用する必要があります。詳細については、「IAM グループまたは IAM ユーザーに対して CodeBuild へのアクセス許可を追加する」および「CodeBuild サービスロールの作成」を参照してください。

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

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

    注記

    By default, Docker containers do not allow access to any devices. Privileged mode grants a build project's Docker container access to all devices. For more information, see Runtime Privilege and Linux Capabilities on the Docker Docs website.

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

    注記

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

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

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

  11. Amazon EFS で作成したファイルシステムに関する情報を変更するには、[Additional configuration (追加設定)] で [識別子]、[ID]、[ディレクトリパス]、[マウントポイント]、[マウントオプション] の値を変更します。詳細については、AWS CodeBuild の Amazon Elastic File System サンプル を参照してください。

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

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

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

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

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

    重要

    If you use Amazon EC2 Systems Manager Parameter Store, we recommend that you store parameters with parameter names that start with /CodeBuild/ (for example, /CodeBuild/dockerLoginPassword). You can use the CodeBuild console to create a parameter in Amazon EC2 Systems Manager. Choose Create parameter, and then follow the instructions in the dialog box. (In that dialog box, for KMS key, you can specify the ARN of an AWS KMS key in your account. Amazon EC2 Systems Manager uses this key to encrypt the parameter's value during storage and decrypt it during retrieval.) If you use the CodeBuild console to create a parameter, the console starts the parameter name with /CodeBuild/ as it is being stored. For more information, see Systems Manager Parameter Store and Systems Manager Parameter Store Console Walkthrough in the Amazon EC2 Systems Manager User Guide.

    If your build project refers to parameters stored in Amazon EC2 Systems Manager Parameter Store, the build project's service role must allow the ssm:GetParameters action. If you chose New service role earlier, CodeBuild includes this action in the default service role for your build project. However, if you chose Existing service role, you must include this action to your service role separately.

    If your build project refers to parameters stored in Amazon EC2 Systems Manager Parameter Store with parameter names that do not start with /CodeBuild/, and you chose New service role, you must update that service role to allow access to parameter names that do not start with /CodeBuild/. This is because that service role allows access only to parameter names that start with /CodeBuild/.

    If you choose New service role, the service role includes permission to decrypt all parameters under the /CodeBuild/ namespace in the Amazon EC2 Systems Manager Parameter Store.

    Environment variables you set replace existing environment variables. For example, if the Docker image already contains an environment variable named MY_VAR with a value of my_value, and you set an environment variable named MY_VAR with a value of other_value, then my_value is replaced by other_value. Similarly, if the Docker image already contains an environment variable named PATH with a value of /usr/local/sbin:/usr/local/bin, and you set an environment variable named PATH with a value of $PATH:/usr/share/ant/bin, then /usr/local/sbin:/usr/local/bin is replaced by the literal value $PATH:/usr/share/ant/bin.

    Do not set any environment variable with a name that begins with CODEBUILD_. This prefix is reserved for internal use.

    If an environment variable with the same name is defined in multiple places, the value is determined as follows:

    • The value in the start build operation call takes highest precedence.

    • The value in the build project definition takes next precedence.

    • The value in the buildspec declaration takes lowest precedence.

    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

    重要

    If you use Secrets Manager, we recommend that you store secrets with names that start with /CodeBuild/ (for example, /CodeBuild/dockerLoginPassword). For more information, see What Is AWS Secrets Manager? in the AWS Secrets Manager User Guide.

    If your build project refers to secrets stored in Secrets Manager, the build project's service role must allow the secretsmanager:GetSecretValue action. If you chose New service role earlier, CodeBuild includes this action in the default service role for your build project. However, if you chose Existing service role, you must include this action to your service role separately.

    If your build project refers to secrets stored in Secrets Manager with secret names that do not start with /CodeBuild/, and you chose New service role, you must update the service role to allow access to secret names that do not start with /CodeBuild/. This is because the service role allows access only to secret names that start with /CodeBuild/.

    If you choose New service role, the service role includes permission to decrypt all secrets under the /CodeBuild/ namespace in the Secrets Manager.

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

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

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

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

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

  17. バッチビルド設定に関する情報を変更するには、[バッチ設定] で、[編集] を選択し、必要に応じて次の値を更新します。

    バッチサービスロール

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

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

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

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

    • ビルドロール StartBuildStopBuild、および RetryBuild のアクセス許可を与えることで、単一のビルドで buildspec を介してより多くのビルドを開始できます。

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

    バッチで使用できるコンピューティングタイプ

    バッチで使用できるコンピューティングタイプを選択します。適用する をすべて選択します。

    バッチで使用できるビルドの最大数

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

    バッチのタイムアウト

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

    アーティファクトの結合

    バッチのすべてのアーティファクトを 1 つの場所にまとめるには、[Combin all artifacts from batch] を選択します。

  18. [Update batch configuration (バッチ設定の更新)] を選択します。

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

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

    重要

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

  21. キャッシュを使用すると、ビルド環境の再利用可能な部分がキャッシュに保存され、複数のビルド間で利用されるため、ビルド時間が大幅に節約されます。ビルド仕様ファイルのキャッシュの指定に関する詳細については、「buildspec の構文」を参照してください。キャッシュに関する情報を変更するには、[Additional configuration (追加設定)] を展開します。[Cache type (キャッシュタイプ)] で、次のいずれかの操作を行います。

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

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

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

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

        重要

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

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

    CloudWatchログ を選択した場合:

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

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

    S3 ログを選択した場合:

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

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

    • S3 ログを暗号化しない場合は、[Remove S3 log encryption] を選択します。

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

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

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