

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

# ビルドの実行 (AWS CLI)
<a name="run-build-cli"></a>

**注記**  
CodePipeline で AWS CodeBuild を使用してビルドを実行するには、この手順をスキップして「[CodeBuild を使用するパイプラインの作成 (AWS CLI)](how-to-create-pipeline-cli.md)」の手順に従います。  
CodeBuild で AWS CLI を使用する方法については、「[コマンドラインリファレンス](cmd-ref.md)」を参照してください。

1. 次のいずれかの方法で `start-build` コマンドを実行します。

   ```
   aws codebuild start-build --project-name <project-name>
   ```

   ビルド入力アーティファクトの最新バージョンとビルドプロジェクトの既存の設定を使用するビルドを実行する場合は、これを使用します。

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   以前のバージョンのビルド入力アーティファクトを使用してビルドを実行する場合、またはビルド出力アーティファクト、環境変数、ビルド仕様、またはデフォルトのビルドタイムアウト期間の設定をオーバーライドする場合は、これを使用します。

1. `--project-name` オプションを指定して **start-build** コマンドを実行する場合は、*<project-name>* をビルドプロジェクトの名前に置き換えて、この手順のステップ 6 に進みます。ビルドプロジェクトのリストを表示するには、「[ビルドプロジェクト名を表示](view-project-list.md)」を参照してください。

1. `--idempotency-token` オプションを指定して **start-build** コマンドを実行すると、大文字と小文字を区別する一意の識別子 (トークン) が `start-build` リクエストに含まれます。このトークンは、 リクエスト後 5 分間有効です。同じトークンで `start-build` リクエストを繰り返し行い、パラメータを変更すると、CodeBuild はパラメータの不一致エラーを返します。

1. **start-build** オプションを指定して `--generate-cli-skeleton` コマンドを実行すると、出力に JSON 形式のデータが表示されます。`start-build.json` がインストールされているローカルコンピュータまたはインスタンス上の場所にあるファイル (例: AWS CLI) にデータをコピーします。コピーしたデータを次の形式に変更して、結果を保存します。

   ```
   {
     "projectName": "projectName",
     "sourceVersion": "sourceVersion",
     "artifactsOverride": {
       "type": "type",
       "location": "location",
       "path": "path",
       "namespaceType": "namespaceType",
       "name": "artifactsOverride-name",
       "packaging": "packaging"
     },
     "buildspecOverride": "buildspecOverride",
     "cacheOverride": {
       "location": "cacheOverride-location",
       "type": "cacheOverride-type"
     },
     "certificateOverride": "certificateOverride",
     "computeTypeOverride": "computeTypeOverride",
     "environmentTypeOverride": "environmentTypeOverride",
     "environmentVariablesOverride": {
       "name": "environmentVariablesOverride-name",
       "value": "environmentVariablesValue",
       "type": "environmentVariablesOverride-type"
     },
     "gitCloneDepthOverride": "gitCloneDepthOverride",
     "imageOverride": "imageOverride",
     "idempotencyToken": "idempotencyToken",
     "insecureSslOverride": "insecureSslOverride",
     "privilegedModeOverride": "privilegedModeOverride",
     "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride",
     "reportBuildStatusOverride": "reportBuildStatusOverride",
     "timeoutInMinutesOverride": "timeoutInMinutesOverride",
     "sourceAuthOverride": "sourceAuthOverride",
     "sourceLocationOverride": "sourceLocationOverride",
     "serviceRoleOverride": "serviceRoleOverride",
     "sourceTypeOverride": "sourceTypeOverride"
   }
   ```

   次のプレースホルダーを置き換えます。
   + *projectName*: 必須の文字列。このビルドに使用するビルドプロジェクトの名前。
   + *sourceVersion*: オプションの文字列。作成するソースコードのバージョンで、次のようになります。
     + Amazon S3 の場合、ビルドする入力 ZIP ファイルのバージョンに対応するバージョン ID。*sourceVersion* が指定されなければ、最新のバージョンが使用されます。
     + CodeCommit の場合、ビルドするソースコードのバージョンに対応するコミット ID。*sourceVersion* が指定されなければ、デフォルトブランチの HEAD コミット ID が使用されます。(*sourceVersion* にタグ名は指定できません。しかし、タグのコミット ID は指定できます。)
     + GitHub の場合、ビルドするソースコードのバージョンに対応するコミット ID、プルリクエスト ID、ブランチ名、またはタグ名。プルリクエスト ID を指定する場合、`pr/pull-request-ID` (例: `pr/25`) 形式を使用する必要があります。ブランチ名を指定すると、ブランチの HEAD コミット ID が使用されます。*sourceVersion* が指定されなければ、デフォルトブランチの HEAD コミット ID が使用されます。
     + Bitbucket の場合、ビルドするソースコードのバージョンに対応するコミット ID、ブランチ名、またはタグ名。ブランチ名を指定すると、ブランチの HEAD コミット ID が使用されます。*sourceVersion* が指定されなければ、デフォルトブランチの HEAD コミット ID が使用されます。
   + 次に示すプレースホルダーは、`artifactsOverride` が対象です。
     + *type*: オプション。このビルドでオーバーライドするビルド出力アーティファクトタイプは、ビルドプロジェクトで定義されたものです。
     + *location*: オプション。このビルドでオーバーライドするビルド出力アーティファクトの場所は、ビルドプロジェクトで定義されたものです。
     + *path*: オプション。このビルドでオーバーライドするビルド出力アーティファクトパスは、ビルドプロジェクトで定義されたものです。
     + *namespaceType*: オプション。このビルドでオーバーライドするビルド出力アーティファクトパスのタイプは、ビルドプロジェクトで定義されたものです。
     + *name*: オプション。このビルドでオーバーライドするビルド出力アーティファクト名は、ビルドプロジェクトで定義されたものです。
     + *packaging*: オプション。このビルドでオーバーライドするビルド出力アーティファクトパッケージタイプは、ビルドプロジェクトで定義されたものです。
   + *buildspecOverride*: オプション。ビルドプロジェクトに定義されている buildspec 宣言を上書きする、このビルドの buildspec 宣言。この値が設定されている場合は、インラインのビルド仕様定義か、組み込みの環境変数 `CODEBUILD_SRC_DIR` の値に相対的な代替 buildspec ファイルへのパスか、S3 バケットへのパスになります。S3 バケットは、ビルドプロジェクトと同じ AWS リージョンに存在する必要があります。ARN を使用して buildspec ファイルを指定します（例: `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`）。この値が指定されていない場合や、空の文字列に設定されている場合、ソースコードのルートディレクトリに `buildspec.yml` ファイルが含まれている必要があります。詳細については、「[buildspec ファイル名とストレージの場所](build-spec-ref.md#build-spec-ref-name-storage)」を参照してください。
   + 次に示すプレースホルダーは、`cacheOverride` が対象です。
     + *cacheOverride-location*: オプション。ビルドプロジェクトで指定された `ProjectCache` オブジェクトを上書きする、このビルドの `ProjectCache` オブジェクトの場所。`cacheOverride` はオプションで、`ProjectCache` オブジェクトを受け取ります。`location` は `ProjectCache` オブジェクトで必要です。
     + *cacheOverride-type*: オプション。ビルドプロジェクトで指定された `ProjectCache` オブジェクトを上書きする、このビルドの `ProjectCache` オブジェクトのタイプ。`cacheOverride` はオプションで、`ProjectCache` オブジェクトを受け取ります。`type` は `ProjectCache` オブジェクトで必要です。
   + *certificateOverride*: オプション。ビルドプロジェクトで指定された証明書を上書きする、このビルドの証明書の名前。
   + *environmentTypeOverride*: オプション。ビルドプロジェクトで指定されたコンテナタイプを上書きする、このビルドのコンテナタイプ。現在の有効な文字列は `LINUX_CONTAINER` です。
   + 次に示すプレースホルダーは、`environmentVariablesOverride` が対象です。
     + *environmentVariablesOverride-name*: オプション。このビルドで値を上書きするビルドプロジェクトの環境変数の名前。
     + *environmentVariablesOverride-type*: オプション。このビルドで値を上書きするビルドプロジェクトの環境変数のタイプ。
     + *environmentVariablesValue*: オプション。このビルドで値を上書きするビルドプロジェクトで定義された環境変数の値。
   + *gitCloneDepthOverride*: オプション。このビルドで上書きする、ビルドプロジェクトの [**Git のクローンの深さ**] の値。ソースタイプが Amazon S3 である場合、この値はサポートされません。
   + *imageOverride*: オプション。ビルドプロジェクトで指定されたイメージを上書きする、このイメージの名前。
   + *idempotencyToken*: オプション。ビルドリクエストがべき等であることを指定する、トークンとして機能する文字列。64 文字以下の任意の文字列を選択できます。このトークンは、ビルド開始リクエスト後 5 分間有効です。同じトークンでビルド開始リクエストを繰り返し行い、パラメータを変更すると、CodeBuild はパラメータの不一致エラーを返します。
   + *insecureSslOverride*: ビルドプロジェクトに指定されている安全でない TLS 設定を上書きするかどうかを指定するブール値 (オプション)。安全でない TLS 設定により、プロジェクトのソースコードに接続するときに TLS 警告を無視するかどうかが決まります。この上書きが適用されるのは、ビルドのソースが GitHub Enterprise Server である場合のみです。
   + *privilegedModeOverride*: オプションのブール値。true に設定すると、ビルドは、ビルドプロジェクトで権限モードを上書きします。
   +  *queuedTimeoutInMinutesOverride*: ビルドをキューに入れてからタイムアウトするまでの時間 (分) を指定するオプションの整数。その最小値は 5 分、最大値は 480 分 (8 時間) です。
   + *reportBuildStatusOverride*: ビルドの開始と完了のステータスをソースプロバイダに送信するかどうかを指定するオプションのブール値。これを GitHub、GitHub Enterprise Server、Bitbucket 以外のソースプロバイダーに対して設定すると、invalidInputException がスローされます。
   + *sourceAuthOverride*: オプションの文字列。ビルドプロジェクトで定義された認可タイプを上書きする、このビルドの認可タイプ。この上書きが適用されるのは、ビルドプロジェクトのソースが Bitbucket または GitHub である場合のみです。
   + *sourceLocationOverride*: オプションの文字列。このビルドで、ビルドプロジェクトで定義されたソースの場所を上書きする場所。
   + *serviceRoleOverride*: オプションの文字列。ビルドプロジェクトで指定されたサービスロールを上書きする、このビルドのサービスロールの名前。
   + *sourceTypeOverride*: オプションの文字列。このビルドで、ビルドプロジェクトで定義されたソース入力を上書きするソース入力タイプ。有効な文字列は、`NO_SOURCE`、`CODECOMMIT`、`CODEPIPELINE`、`GITHUB`、`S3`、`BITBUCKET`、および `GITHUB_ENTERPRISE` です。
   + *timeoutInMinutesOverride*: オプション番号。このビルドで上書きするビルドタイムアウトの分数は、ビルドプロジェクトで定義されたものです。

   AWS アクセスキー ID、AWS シークレットアクセスキー、パスワードなどの機密値を持つ環境変数は、パラメータとして Amazon EC2 Systems Manager Parameter Store に保存することをお勧めします。CodeBuild では、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータは、そのパラメータの名前が `/CodeBuild/` (例: `/CodeBuild/dockerLoginPassword`) で始まる場合にのみ使用できます。CodeBuild コンソールを使用して、Amazon EC2 Systems Manager にパラメータを作成することができます。[**Create a parameter (パラメータの作成)**] を選択し、手順に従います。(ダイアログボックスでは、[**KMS キー**] の場合、オプションでアカウントの AWS KMS キーの ARN を指定できます。Amazon EC2 Systems Manager では、このキーを使用して、保存中にパラメータの値を暗号化し、取得中に復号化します。) CodeBuild コンソールを使用してパラメータを作成した場合、コンソールは保存されている `/CodeBuild/` パラメータを開始します。ただし、Amazon EC2 Systems Manager パラメータストアコンソールを使用してパラメータを作成する場合、パラメータの名前を `/CodeBuild/` で開始する必要があり、**[タイプ]** を **[Secure String (安全な文字列)] **に設定する必要があります。詳細については、「*Amazon EC2 Systems Manager ユーザーガイド*」の「[AWS Systems Manager パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)」および[「チュートリアル: String パラメータの作成とテスト (コンソール)」](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html)を参照してください。

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

   既存の環境変数は、設定した環境変数により置き換えられます。たとえば、Docker イメージに `my_value` の値を持つ `MY_VAR` という名前の環境変数が既に含まれていて、`other_value` の値を持つ `MY_VAR` という名前の環境変数を設定した場合、`my_value` が `other_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_` で始まる名前の環境変数は設定しないでください。このプレフィックスは内部使用のために予約されています。

   同じ名前の環境変数が複数の場所で定義されている場合、環境変数の値は次のように決定されます。
   + ビルド開始オペレーション呼び出しの値が最も優先順位が高くなります。
   + ビルドプロジェクト定義の値が次に優先されます。
   + buildspec ファイル宣言の値の優先順位が最も低くなります。

   これらのプレースホルダの有効な値の詳細については、「[ビルドプロジェクトの作成 (AWS CLI)](create-project.md#create-project-cli)」を参照してください。ビルドプロジェクトの最新の設定の一覧については、「[ビルドプロジェクトの詳細を表示](view-project-details.md)」を参照してください。

1. 保存したばかりのファイルがあるディレクトリに移動し、`start-build` コマンドをもう一度実行します。

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. 成功した場合は、「[ビルドを実行するには](getting-started-overview.md#getting-started-run-build-cli)」の手順で説明されているのと同様のデータが出力に表示されます。

このビルドの詳細情報を使用するには、出力の `id` の値を書き留めてから、「[ビルドの詳細の表示 (AWS CLI)](view-build-details.md#view-build-details-cli)」を参照してください。