

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

# でのビルドプロジェクトの作成AWS CodeBuild
<a name="create-project"></a>

ビルドプロジェクトを作成するには、AWS CodeBuild コンソール、AWS CLI、または AWS SDK を使用できます。

**Topics**
+ [

## 前提条件
](#create-project-prerequisites)
+ [

## ビルドプロジェクトの作成 (コンソール)
](#create-project-console)
+ [

## ビルドプロジェクトの作成 (AWS CLI)
](#create-project-cli)
+ [

## ビルドプロジェクトの作成 (AWS SDK)
](#create-project-sdks)
+ [

## ビルドプロジェクトの作成 (CloudFormation)
](#create-project-cloud-formation)

## 前提条件
<a name="create-project-prerequisites"></a>

ビルドプロジェクトを作成する前に、[ビルドを計画する](planning.md) の質問に回答します。

## ビルドプロジェクトの作成 (コンソール)
<a name="create-project-console"></a>

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

 CodeBuild の情報ページが表示された場合、**ビルドプロジェクトを作成する**を選択します。それ以外の場合は、ナビゲーションペインで**ビルド**を展開し、**[ビルドプロジェクト] **を選択し、次に **[Create build project (ビルドプロジェクトの作成)] **を選択します。

[**Create build project (ビルドプロジェクトの作成)**] を選択します。

次のセクションに入力します。完了したら、ページの下部にある **[Create build project]** (ビルドプロジェクトを作成する) を選択します。

**Topics**
+ [

### プロジェクトの設定
](#create-project-console-project-config)
+ [

### ソース
](#create-project-console-source)
+ [

### 環境
](#create-project-console-environment)
+ [

### Buildspec
](#create-project-console-buildspec)
+ [

### Batch 構成
](#create-project-console-batch-config)
+ [

### アーティファクト
](#create-project-console-artifacts)
+ [

### ログ
](#create-project-console-logs)

### プロジェクトの設定
<a name="create-project-console-project-config"></a>

**Project name**  
このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。

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

**ビルドバッジ**  
(オプション)**[Enable build badge]** (ビルドバッジを有効にする) を選択すると、プロジェクトのビルドステータスが表示可能および埋め込み可能になります。詳細については、「[ビルドバッジサンプル](sample-build-badges.md)」を参照してください。  
ソースプロバイダーが Amazon S3 の場合、ビルドバッジは適用されません。

**同時ビルド制限を有効にする**  <a name="enable-concurrent-build-limit.console"></a>
(オプション) このプロジェクトで同時ビルド数を制限するには、次の手順を実行します。  

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

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

**追加情報**  
(オプション) [**タグ**] に、サポート対象の AWS のサービスで使用するタグの名前と値を入力します。[**Add row**] を使用して、タグを追加します。最大 50 個のタグを追加できます。

### ソース
<a name="create-project-console-source"></a>

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

------
#### [ Amazon S3 ]

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

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

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

------
#### [ CodeCommit ]

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

**参照タイプ**  
**[Branch] **(ブランチ) または** [Git tag]** (Git タグ) を選択するか、**[Commit ID]** (コミット ID) を入力して、ソースコードのバージョンを指定します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

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

------
#### [ Bitbucket ]

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

 **[接続タイプ]**   
**[CodeConnections]**、**[OAuth]**、**[アプリパスワード]**、または **[個人用アクセストークン]** を選択して CodeBuild に接続します。

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

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

 **ソースバージョン**   
ブランチ、コミット ID、タグあるいはリファレンスとコミット ID を入力します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

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

**ビルドステータス**  
ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、**[Report build statuses to source provider when your builds start and finish]** (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。  
**[Status context]** (ステータスコンテキスト) に、Bitbucket コミットステータスの `name` パラメータに使用する値を記入します。詳細については、Bitbucket API ドキュメントの「[ビルド](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build)」を参照してください。  
**[Target URL]** (ターゲットURL) に、Bitbucket コミットステータスの `url` パラメータに使用する値を記入します。詳細については、Bitbucket API ドキュメントの「[ビルド](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build)」を参照してください。  
webhook によってトリガーされたビルドのステータスは常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータスまたはソースプロバイダーに報告された API 呼び出しを取得するには、この設定を選択する必要があります。  
プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

[**Primary source webhook events**] (プライマリソース Webhook イベント) で [**Rebuild every time a code change is pushed to this repository**] (コード変更がこのリポジトリにプッシュされるたび再構築) を選択して、コード変更がこのリポジトリにプッシュされるたびに CodeBuild で再構築します。Webhook およびフィルターグループの詳細については、「[Bitbucket ウェブフックイベント](bitbucket-webhook.md)」を参照してください。

------
#### [ GitHub ]

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

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

 **接続**   
GitHub 接続または Secrets Manager シークレットを選択して、指定した接続タイプ経由で接続します。

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

 **ソースバージョン**   
ブランチ、コミット ID、タグあるいはリファレンスとコミット ID を入力します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

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

**ビルドステータス**  
ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、**[Report build statuses to source provider when your builds start and finish]** (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。  
**[Status context]** (ステータスコンテキスト) に、GitHub コミットステータスの `context`パラメータに使用する値を記入します。ｑ 詳細については、GitHub デベロッパーガイドの「[コミットステータスの作成](https://developer.github.com/v3/repos/statuses/#create-a-commit-status)」を参照してください。  
**[Target URL] **(ターゲット URL) に、 GitHub コミットステータスの `target_url` パラメータに使用する値を記入します。詳細については、GitHub デベロッパーガイドの「[コミットステータスの作成](https://developer.github.com/v3/repos/statuses/#create-a-commit-status)」を参照してください。  
webhook によってトリガーされたビルドのステータスは、常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータスまたはソースプロバイダーに報告された API 呼び出しを取得するには、この設定を選択する必要があります。  
プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

[**Primary source webhook events**] (プライマリソース Webhook イベント) で [**Rebuild every time a code change is pushed to this repository**] (コード変更がこのリポジトリにプッシュされるたび再構築) を選択して、コード変更がこのリポジトリにプッシュされるたびに CodeBuild で再構築します。Webhook およびフィルターグループの詳細については、「[GitHub ウェブフックイベント](github-webhook.md)」を参照してください。

------
#### [ GitHub Enterprise Server ]

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

 **[接続タイプ]**   
**[CodeConnections]** または **[個人用アクセストークン]** を選択して CodeBuild に接続します。

 **接続**   
GitHub Enterprise 接続または Secrets Manager シークレットを選択して、指定した接続タイプ経由で接続します。

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

**ソースバージョン**  
プルリクエスト、ブランチ、コミット ID、コミット ID、参照、およびコミット ID を入力します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

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

**ビルドステータス**  
ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、**[Report build statuses to source provider when your builds start and finish]** (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。  
**[Status context]** (ステータスコンテキスト) に、GitHub コミットステータスの `context`パラメータに使用する値を記入します。ｑ 詳細については、GitHub デベロッパーガイドの「[コミットステータスの作成](https://developer.github.com/v3/repos/statuses/#create-a-commit-status)」を参照してください。  
**[Target URL] **(ターゲット URL) に、 GitHub コミットステータスの `target_url` パラメータに使用する値を記入します。詳細については、GitHub デベロッパーガイドの「[コミットステータスの作成](https://developer.github.com/v3/repos/statuses/#create-a-commit-status)」を参照してください。  
webhook によってトリガーされたビルドのステータスは、常にソースプロバイダーにレポートされます。コンソールから開始されたビルドのステータスまたはソースプロバイダーに報告された API 呼び出しを取得するには、この設定を選択する必要があります。  
プロジェクトのビルドが webhook によってトリガーされた場合、この設定への変更を有効にするには、新しいコミットをリポジトリにプッシュする必要があります。

**安全でない SSL**  
[**Enable insecure SSL (セキュアでない SSL を有効にする)**] を選択して、GitHub Enterprise プロジェクトリポジトリに接続するときの SSL 警告を無視します。

[**Primary source webhook events**] (プライマリソース Webhook イベント) で [**Rebuild every time a code change is pushed to this repository**] (コード変更がこのリポジトリにプッシュされるたび再構築) を選択して、コード変更がこのリポジトリにプッシュされるたびに CodeBuild で再構築します。Webhook およびフィルターグループの詳細については、「[GitHub ウェブフックイベント](github-webhook.md)」を参照してください。

------
#### [ GitLab ]

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

 **[接続タイプ]**   
**[CodeConnections]** は、GitLab を CodeBuild に接続するために使用されます。

 **接続**   
CodeConnections 経由で接続する GitLab 接続を選択します。

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

 **ソースバージョン**   
プルリクエスト ID、ブランチ、コミット ID、タグ、または参照およびコミット ID を入力します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

**ビルドステータス**  
ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、**[Report build statuses to source provider when your builds start and finish]** (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。

------
#### [ GitLab Self Managed ]

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

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

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

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

 **ソースバージョン**   
プルリクエスト ID、ブランチ、コミット ID、タグ、または参照およびコミット ID を入力します。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。  
`811dd1ba1aba14473856cee38308caed7190c0d` または `5392f7` のように、コミット ID と似ていない Git ブランチ名を選択することをお勧めします。これにより、Git checkout が実際のコミットと衝突するのを防ぐことができます。

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

**ビルドステータス**  
ビルドの開始と終了のステータスをソースプロバイダーにレポートする場合は、**[Report build statuses to source provider when your builds start and finish]** (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) を選択します。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。

------

### 環境
<a name="create-project-console-environment"></a>

**[プロビジョニングモデル]**  
次のいずれかを行ってください。  
+ AWS CodeBuild が管理するオンデマンドフリートを使用するには、**[オンデマンド]** を選択します。オンデマンドフリートでは、CodeBuild がビルドのコンピューティングを行います。マシンはビルドが終了すると破棄されます。オンデマンドフリートはフルマネージド型で、需要の急増にも対応できる自動スケーリング機能を備えています。
+ AWS CodeBuild が管理するリザーブドキャパシティフリートを使用するには、**[リザーブドキャパシティ]** を選択し、**[フリート名]** を選択します。リザーブドキャパシティフリートでは、ビルド環境に合わせて専有インスタンスのセットを設定します。これらのマシンはアイドル状態のままで、ビルドやテストをすぐに処理できる状態になり、ビルド時間を短縮します。リザーブドキャパシティフリートでは、マシンは常に稼働しており、プロビジョニングされている間はコストが発生し続けます。
詳細については、[リザーブドキャパシティキャパシティフリートでビルドを実行](fleets.md) を参照してください。

**環境イメージ**  <a name="environment-image.console"></a>
次のいずれかを行ってください。  
+ AWS CodeBuild が管理する Docker イメージを使用するには、[**Managed image (マネージドイメージ)**] を選択し、次に [**オペレーティングシステム**]、[**ランタイム**]、[**イメージ**]、および [**ランタイムバージョン**] で適切な選択を行います。利用可能な場合は、[**環境タイプ**] から選択します。
+ 別の Docker イメージを使用するには、[**カスタムイメージ**] を選択します。**[Environment type (環境タイプ)]** で、 [**ARM**]、[**Linux**]、[**Linux GPU**] または [**Windows**] を選択します。[**Other registry (その他のレジストリ)**] を選択した場合は、[**External registry URL (外部のレジストリ URL)**] に `docker repository/docker image name` の形式に従って Docker Hub の Docker イメージの名前とタグを入力します。[**Amazon ECR**] を選択した場合は、[**Amazon ECR レポジトリ**] および [**Amazon ECR イメージ**] を使用して AWS アカウントの Docker イメージを選択します。
+ プライベート Docker イメージを使用するには、[**カスタムイメージ**] を選択します。**[Environment type (環境タイプ)]** で、 [**ARM**]、[**Linux**]、[**Linux GPU**] または [**Windows**] を選択します。[**Image registry (イメージレジストリ)**] に [**Other registry (その他のレジストリ)**] を選択して、その後プライベート Docker イメージの認証情報の ARN を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、*AWS Secrets Managerユーザーガイド*の「[AWS Secrets Manager とは](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)」を参照してください。
CodeBuild はカスタムDocker イメージの「`ENTRYPOINT`」をオーバーライドします。

**コンピューティング**  
次のいずれかを行ってください。  
+ EC2 コンピューティングを使用するには、**[EC2]** を選択します。EC2 コンピューティングは、アクションの実行中に最適化された柔軟性を提供します。
+ Lambda コンピューティングを使用するには、**[Lambda]** を選択します。Lambda コンピューティングは、ビルドの起動速度を最適化します。Lambda は、起動レイテンシーが低いため、より高速なビルドをサポートします。また、Lambda は自動的にスケールされるため、ビルドはキュー内で実行を待機することはありません。詳細については、[AWS Lambda コンピューティングでビルドを実行する](lambda.md) を参照してください。

**サービスロール**  
次のいずれかを行ってください。  
+ CodeBuild サービスロールがない場合は、[**新しいサービスロール**] を選択します。[**Role name**] に、新しいロールの名前を入力します。
+ CodeBuild サービスロールがある場合は、**[Existing service role (既存のサービスロール)]** を選択します。[**Role ARN**] で、サービスロールを選択します。
コンソールでは、ビルドプロジェクトの作成時に CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。

**追加設定**    
**[自動再試行の制限]**  
ビルドが失敗した後の追加の自動再試行回数を指定します。例えば、自動再試行の制限が 2 に設定されている場合、CodeBuild は `RetryBuild` API を呼び出して、さらに最大 2 回までビルドを自動的に再試行します。  
**タイムアウト**  
5 分～36 時間の間の値を指定します。この時間が経過してもビルドが完了していない場合、CodeBuild はビルドを停止します。[**hours**] と [**minutes**] を空白のままにすると、デフォルト値の 60 分が使用されます。  
**特権付与**  
(オプション) このビルドプロジェクトを使って Dockerイメージをビルドする場合にのみ、**[Docker イメージをビルドする場合、またはビルドで昇格された権限を取得する場合は、このフラグを有効にする]** を選択します。それ以外の場合、関連付けられているビルドで Docker デーモンと通信しようとすると、すべて失敗します。ビルドが Docker デーモンと連係動作できるように、Docker デーモンも起動する必要があります。これを行う 1 つの方法は、次のビルドコマンドを実行してビルドスペックの `install` フェーズで Docker デーモンを初期化することです。Docker をサポートする CodeBuild によって提供されるビルド環境イメージを選択した場合は、これらのコマンドを実行しないでください。  
デフォルトでは、Docker デーモンは非 VPC ビルドで有効になっています。VPC ビルドに Docker コンテナを使用する場合は、Docker Docs ウェブサイトの「[Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)」を参照して、特権モードを有効にします。また、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 Subnets (サブネット)**] で、CodeBuild が使用するリソースを含むサブネットを選択します。
+ **[VPC Security groups (VPC セキュリティグループ)] **で、CodeBuild が VPC 内のリソースへのアクセスを許可するために使用するセキュリティグループを選択します。
詳細については、「[Amazon Virtual Private Cloud AWS CodeBuild で を使用する](vpc-support.md)」を参照してください。  
**コンピューティング**  
使用可能なオプションの 1 つを選択します。  
**レジストリ認証情報**  
プロジェクトが非プライベートレジストリイメージで設定されている場合は、レジストリ認証情報を指定します。  
この認証情報は、イメージがプライベートレジストリのイメージで上書きされている場合にのみ使用されます。  
**環境変数**  
[環境変数] で、名前と値を入力してから、ビルドによって使用される各環境変数の種類を選択します。  
CodeBuild は AWS リージョンの環境変数を自動的に設定します。以下の環境変数を buildspec.yml に追加していない場合は、それらの変数を設定する必要があります。  
+ AWS\$1ACCOUNT\$1ID
+ IMAGE\$1REPO\$1NAME
+ IMAGE\$1TAG
コンソールと AWS CLI のユーザーは環境変数を表示できます。環境変数の表示に懸念がない場合は、[**Name**] および [**Value**] フィールドを設定し、[**Type**] を [**Plaintext**] に設定します。  
Amazon EC2 Systems Manager パラメータストア または AWS Secrets Manager には、AWS アクセスキー ID、AWS シークレットアクセスキー、またはパスワードなどの機密値を持つ環境変数をパラメータとして保存することをお勧めします。  
Amazon EC2 Systems Manager パラメータストアを使用する場合は、[**Type (タイプ)**] で、[**Parameter (パラメータ)**] を選択します。**[Name]** (名前) に、参照する CodeBuild の識別子を入力します。**[Value]** (値) に、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 EC2 Systems Manager ユーザーガイド*」の「[Systems Manager パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html)」および「[Systems Manager パラメータストアコンソールのチュートリアル](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console)」を参照してください。  
ビルドプロジェクトが Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで `ssm:GetParameters` アクションを許可する必要があります。以前に **[New service role]** (新しいサービスロール) を選択した場合は、CodeBuild のビルドプロジェクトのデフォルトのサービスロールにこのアクションが含まれています。ただし [**既存のサービスロール**] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。  
ビルドプロジェクトが、`/CodeBuild/` で始まらないパラメータ名を持つ、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照し、[**新しいサービスロール**] を選択した場合、`/CodeBuild/` で始まらないパラメータ名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールで、`/CodeBuild/` で始まるパラメータ名にのみアクセスが許可されるためです。  
[**新しいサービスロールを作成**] を選択した場合、サービスロールには、Amazon EC2 Systems Manager パラメータストアの `/CodeBuild/` 名前空間ですべてのパラメータを復号するアクセス権限が含まれます。  
既存の環境変数は、設定した環境変数により置き換えられます。たとえば、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_` で始まる名前の環境変数は設定しないでください。このプレフィックスは内部使用のために予約されています。  
同じ名前の環境変数が複数の場所で定義されている場合は、その値は次のように決定されます。  
+ ビルド開始オペレーション呼び出しの値が最も優先順位が高くなります。
+ ビルドプロジェクト定義の値が次に優先されます。
+ ビルド仕様宣言の値の優先順位が最も低くなります。
Secrets Manager を使用する場合は、**[Type]** (タイプ) で、**[Secrets Manager]** を選択します。**[Name]** (名前) に、参照する CodeBuild の識別子を入力します。[**Value (値)**] に、パターン `reference-key` を使用して `secret-id:json-key:version-stage:version-id` を入力します。詳細については、[Secrets Manager reference-key in the buildspec file](build-spec-ref.md#secrets-manager-build-spec) を参照してください。  
Secrets Manager を使用する場合は、「`/CodeBuild/`」で始まる名前でシークレットを保存することをお勧めします(たとえば、`/CodeBuild/dockerLoginPassword`)。詳細については、*AWS Secrets Managerユーザーガイド*の「[AWS Secrets Manager とは](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)」を参照してください。  
ビルドプロジェクトが Secrets Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで `secretsmanager:GetSecretValue` アクションを許可する必要があります。以前に **[New service role]** (新しいサービスロール) を選択した場合は、CodeBuild のビルドプロジェクトのデフォルトのサービスロールにこのアクションが含まれています。ただし [**既存のサービスロール**] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。  
ビルドプロジェクトが、`/CodeBuild/` で始まらないパラメータ名を持つ、Secrets Manager に保存されているパラメータを参照し、**[新しいサービスロール] **を選択した場合、`/CodeBuild/` で始まらないシークレット名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールで、`/CodeBuild/` で始まるシークレット名にのみアクセスが許可されるためです。  
[**新しいサービスロール**] を選択した場合、作成されるサービスロールには、Secrets Manager の `/CodeBuild/` 名前空間ですべてのシークレットを復号するアクセス許可が含まれます。

### Buildspec
<a name="create-project-console-buildspec"></a>

**ビルド仕様**  
次のいずれかを行ってください。  
+ ソースコードにビルド仕様ファイルが含まれている場合は、[**Use a buildspec file (buildspec ファイルを使用)**] を選択します。デフォルトでは、CodeBuild はソースコードのルートディレクトリで `buildspec.yml` という名前のファイルを探します。buildspec ファイルに別の名前または場所が使用されている場合は、**Buildspec 名** にソースルートからのパスを入力します (例えば、`buildspec-two.yml` または `configuration/buildspec.yml`)。buildspec ファイルが S3 バケットにある場合は、ビルドプロジェクトと同じ AWS リージョンに存在する必要があります。ARN を使用して buildspec ファイルを指定します (例: `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) に関するリファレンス](build-spec-ref.md)」を参照してください。

### Batch 構成
<a name="create-project-console-batch-config"></a>

ビルドのグループを 1 つの操作として実行できます。詳細については、「[ビルドをバッチで実行](batch-build.md)」を参照してください。

**バッチ構成の定義**  
このプロジェクトでバッチビルドを許可する場合に選択します。

**Batch サービスロール**  
バッチビルドのサービスロールを提供します。  
次のいずれかを選択します。  
+ バッチサービスロールがない場合は、**[New service role]** (新しいサービスロール) を選択します。**[Service role]** (サービスロール) に、新しいロールの名前を入力します。
+ バッチサービスロールがある場合は、**[Existing service role]** (既存のサービスロール) を選択します。**[Service role]** (サービスロール) で、サービスロールを選択します。
バッチビルドでは、バッチ設定に新しいセキュリティロールが導入されます。この新しいロールでは、CodeBuild が `StartBuild`、`StopBuild` および `RetryBuild` アクションを使用して、バッチの一部としてビルドを実行する上で必要です。次の2つの理由により、お客様はビルドで使用するものと同じロールではなく、新しいロールを使用する必要があります。  
+ ビルドの役割を与える `StartBuild`、`StopBuild`、および `RetryBuild` アクセス権限を使用すると、単一のビルドが buildspec を介してより多くのビルドを開始することができます。
+ CodeBuild バッチビルドには、バッチ内のビルドに使用できるビルドと計算タイプの数を制限する制限があります。ビルドロールにこれらの権限がある場合、ビルド自体がこれらの制限を回避する可能性があります。

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

**バッチに許可されるフリート**  
バッチで許可されるフリートを選択します。該当するものをすべて選択します。

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

**バッチのタイムアウト**  
バッチビルドが完了する最大時間を入力します。

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

 **バッチレポートモード**   
バッチビルドに対して望ましいビルドステータスレポートモードを選択します。  
このフィールドが利用可能になるのは、プロジェクトソースが Bitbucket、GitHub、または GitHub Enterprise であり、[**Source**] (ソース) で [**Report build statuses to source provider when your builds start and finish**] (ビルドの開始と終了時にソースプロバイダーにビルドステータスをレポートする) が選択されている場合のみです。  
 **集約されたビルド**   
これを選択して、バッチ内にあるすべてのビルドのステータスを単一のステータスレポートにまとめます。  
 **個々のビルド**   
これを選択して、バッチ内にあるすべてのビルドのビルドステータスが個別に報告されるようにします。

### アーティファクト
<a name="create-project-console-artifacts"></a>

**タイプ**  
次のいずれかを行ってください。  
+ ビルド出力アーティファクトを作成しない場合は、[**No artifacts**] を選択します。ビルドテストのみを実行している場合や、Docker イメージを Amazon ECR リポジトリにプッシュする場合には、これを行うことができます。
+ ビルド出力を S3 バケットに保存する場合は、[**Amazon S3**] を選択して次のいずれかの操作を行います。
  + ビルド出力 ZIP ファイルまたはフォルダにプロジェクト名を使用する場合は、[**Name (名前)**] を空白のままにします。それ以外の場合は、名前を入力します。(ZIP ファイルを出力して ZIP ファイルにファイル拡張子を付ける場合は、必ず ZIP ファイル名の後に含めます)。
  + buildspec ファイルで指定した名前で、コンソールで指定した名前を上書きする場合は、[**Enable semantic versioning (セマンティックバージョニングを有効にする)**] を選択します。buildspec ファイル内の名前は、ビルド時に計算され、Shell コマンド言語を使用します。たとえば、アーティファクト名に日付と時刻を追加して常に一意にできます。アーティファクト名を一意にすると、アーティファクトが上書きされるのを防ぐことができます。詳細については、「[buildspec の構文](build-spec-ref.md#build-spec-ref-syntax)」を参照してください。
  + [**Bucket name (バケット名)**] で、出力バケットの名前を選択します。
  + この手順の前の方で [**ビルドコマンドの挿入**] を選択した場合は、[**出力ファイル**] に、ビルド出力 ZIP ファイルまたはフォルダに格納するビルドのファイルの場所を入力します。複数の場所の場合は、各場所をコンマで区切ります (例: `appspec.yml, target/my-app.jar`)。詳細については、「`files`」で [buildspec の構文](build-spec-ref.md#build-spec-ref-syntax) の説明を参照してください。
  + ビルドアーティファクトを暗号化しない場合は、[**アーティファクト暗号化の削除**] を選択します。
アーティファクトのセカンダリセットごとに:  

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

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

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

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

**追加設定**    
**暗号化キー**  
 次のいずれかを実行します。  
+ アカウントの Amazon S3 の AWS マネージドキー を使用してビルド出力アーティファクトを暗号化するには、[**暗号化キー**] を空白のままにします。これがデフォルトです。
+ カスタマー管理のキーを使用してビルド出力アーティファクトを暗号化するには、[**暗号化キー**] に KMS キーの 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 の構文](build-spec-ref.md#build-spec-ref-syntax)」を参照してください。キャッシングの詳細については、「[パフォーマンスを向上させるためのキャッシュビルド](build-caching.md)」を参照してください。

### ログ
<a name="create-project-console-logs"></a>

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

**CloudWatch**  
Amazon CloudWatch Logs が必要な場合:    
**CloudWatch Logs**  
**[CloudWatch logs]** を選択します。  
**グループ名**  
Amazon CloudWatch Logs のログのグループ名を入力します。  
**ストリーム名**  
Amazon CloudWatch Logs ログストリーム名を入力します。

**S3**  
Amazon S3 ログが必要な場合は、以下のようになります。    
**S3 ログ**  
[**S3 logs (S3 ログ)**] を選択します。  
**バケット**  
ログを保存する S3 バケットの名前を選択します。  
**パスプレフィックス**  
ログのプレフィックスを入力します。  
**S3 ログの暗号化を無効にする**  
S3 ログを暗号化しない場合は、選択します。

## ビルドプロジェクトの作成 (AWS CLI)
<a name="create-project-cli"></a>

CodeBuild で AWS CLI を使用する方法の詳細については、「[コマンドラインリファレンス](cmd-ref.md)」を参照してください。

AWS CLI を使用して CodeBuild ビルドプロジェクトを作成するには、JSON 形式の[プロジェクト](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html)構造体を作成し、構造体に入力を行い、[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html) コマンドを実行してプロジェクトを作成します。

### JSON ファイルの作成
<a name="cp-cli-create-file"></a>

`--generate-cli-skeleton` オプションを使用して、[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html) コマンドでスケルトン JSON ファイルを作成します。

```
aws codebuild create-project --generate-cli-skeleton > <json-file>
```

これにより、*<json-file>* で指定されるパスとファイル名で JSON ファイルが作成されます。

### JSON ファイルを入力します。
<a name="cp-cli-fill-in-file"></a>

JSON データを次のように変更して、結果を保存します。

```
{
  "name": "<project-name>",
  "description": "<description>",
  "source": {
    "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
    "location": "<source-location>",
    "gitCloneDepth": "<git-clone-depth>",
    "buildspec": "<buildspec>",
    "InsecureSsl": "<insecure-ssl>",
    "reportBuildStatus": "<report-build-status>",
    "buildStatusConfig": {
      "context": "<context>",
      "targetUrl": "<target-url>"
    },
    "gitSubmodulesConfig": {
      "fetchSubmodules": "<fetch-submodules>"
    },
    "auth": {
      "type": "<auth-type>",
      "resource": "<auth-resource>"
    },
    "sourceIdentifier": "<source-identifier>"
  },
  "secondarySources": [
    {
        "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
        "location": "<source-location>",
        "gitCloneDepth": "<git-clone-depth>",
        "buildspec": "<buildspec>",
        "InsecureSsl": "<insecure-ssl>",
        "reportBuildStatus": "<report-build-status>",
        "auth": {
          "type": "<auth-type>",
          "resource": "<auth-resource>"
        },
        "sourceIdentifier": "<source-identifier>"
    }
  ],
  "secondarySourceVersions": [
    {
      "sourceIdentifier": "<secondary-source-identifier>",
      "sourceVersion": "<secondary-source-version>"
    }
  ],
  "sourceVersion": "<source-version>",
  "artifacts": {
    "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
    "location": "<artifacts-location>",
    "path": "<artifacts-path>",
    "namespaceType": "<artifacts-namespacetype>",
    "name": "<artifacts-name>",
    "overrideArtifactName": "<override-artifact-name>",
    "packaging": "<artifacts-packaging>"
  },
  "secondaryArtifacts": [
    {
      "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
      "location": "<secondary-artifact-location>",
      "path": "<secondary-artifact-path>",
      "namespaceType": "<secondary-artifact-namespaceType>",
      "name": "<secondary-artifact-name>",
      "packaging": "<secondary-artifact-packaging>",
      "artifactIdentifier": "<secondary-artifact-identifier>"
    }
  ],
  "cache": {
    "type": "<cache-type>",
    "location": "<cache-location>",
    "mode": [
      "<cache-mode>"
    ]
  },
  "environment": {
    "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER",
    "image": "<image>",
    "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE",
    "certificate": "<certificate>",
    "environmentVariables": [
      {
        "name": "<environmentVariable-name>",
        "value": "<environmentVariable-value>",
        "type": "<environmentVariable-type>"
      }
    ],
    "registryCredential": [
      {
        "credential": "<credential-arn-or-name>",
        "credentialProvider": "<credential-provider>"
      }
    ],
    "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE",
    "privilegedMode": "<privileged-mode>"
  },
  "serviceRole": "<service-role>",
  "autoRetryLimit": <auto-retry-limit>,
  "timeoutInMinutes": <timeout>,
  "queuedTimeoutInMinutes": <queued-timeout>,
  "encryptionKey": "<encryption-key>",
  "tags": [
    {
      "key": "<tag-key>",
      "value": "<tag-value>"
    }
  ],
  "vpcConfig": {
    "securityGroupIds": [
         "<security-group-id>"
    ],
    "subnets": [
         "<subnet-id>"
    ],
    "vpcId": "<vpc-id>"
  },
  "badgeEnabled": "<badge-enabled>",
  "logsConfig": {
    "cloudWatchLogs": {
      "status": "<cloudwatch-logs-status>",
      "groupName": "<group-name>",
      "streamName": "<stream-name>"
    },
    "s3Logs": {
      "status": "<s3-logs-status>",
      "location": "<s3-logs-location>",
      "encryptionDisabled": "<s3-logs-encryption-disabled>"
    }
  },
  "fileSystemLocations": [
    {
      "type": "EFS",
      "location": "<EFS-DNS-name-1>:/<directory-path>",
      "mountPoint": "<mount-point>",
      "identifier": "<efs-identifier>",
      "mountOptions": "<efs-mount-options>"
    }
  ],
  "buildBatchConfig": {
    "serviceRole": "<batch-service-role>",
    "combineArtifacts": <combine-artifacts>,
    "restrictions": {
      "maximumBuildsAllowed": <max-builds>,
      "computeTypesAllowed": [
        "<compute-type>"
      ],
      "fleetsAllowed": [
        "<fleet-name>"
      ]
    },
    "timeoutInMins": <batch-timeout>,
    "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS"
  },
  "concurrentBuildLimit": <concurrent-build-limit>
}
```

以下に置き換えます。

#### **.name**
<a name="cli.project-name"></a>

必須。このビルドプロジェクトの名前。この名前は、AWS アカウントのすべてのビルドプロジェクトにわたって一意である必要があります。

#### **description**
<a name="cli.description"></a>

オプション。このビルドの説明。

#### **ソース**
<a name="cli.source"></a>

必須。このビルドプロジェクトのソースコード設定に関する情報が含まれている、[ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) オブジェクト。`source` オブジェクトを追加したら、[**secondarySources**](#cli.secondarysources) を使用して最大 12 個のソースを追加できます。これらの設定には以下が含まれます。

source/**type**  <a name="cli.source.type"></a>
必須。ビルドするソースコードを含むリポジトリのタイプ。有効な値を次に示します。  
+ `CODECOMMIT`
+ `CODEPIPELINE`
+ `GITHUB`
+ `GITHUB_ENTERPRISE`
+ `GITLAB`
+ `GITLAB_SELF_MANAGED`
+ `BITBUCKET`
+ `S3`
+ `NO_SOURCE`
`NO_SOURCE` を使用すると、プロジェクトにはソースがないため、buildspec をファイルとして使用できません。代わりに、`buildspec` 属性を使用して buildspec に YAML 形式の文字列を指定する必要があります。詳細については、「[ソースなしでビルドプロジェクトを作成](no-source.md)」を参照してください。

source/**location**  <a name="cli.source.location"></a>
*<source-type>* を `CODEPIPELINE` に設定しない場合は必須です。指定されたリポジトリタイプのソースコードの場所。  
+ CodeCommit の場合は、ソースコードと buildspec ファイルが格納されているリポジトリの HTTPS クローン URL（例: `https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>`）。
+ Amazon S3 では、ビルド入力バケット名の後に、ソースコードと buildspec を含む ZIP ファイルのパスと名前が続きます。次に例を示します。
  + 入力バケットのルートにある ZIP ファイルの場合:　`<bucket-name>/<object-name>.zip`。
  + 入力バケットのサブフォルダーにある ZIP ファイルの場合: `<bucket-name>/<subfoler-path>/<object-name>.zip`。
+ GitHub の場合は、ソースコードと buildspec ファイルが格納されているリポジトリへの HTTPS クローン URL。URL には github.com が含まれている必要があります。AWS アカウントを GitHub アカウントに接続する必要があります。これを行うには、CodeBuild コンソールを使用してビルドプロジェクトを作成します。
  + [**Authorize application**] を選択します。(GitHub アカウントに接続した後、ビルドプロジェクトの作成を完了する必要はありません。CodeBuild コンソールを閉じることができます。) 
+ GitHub Enterprise Server の場合は、ソースコードと buildspec ファイルを含むリポジトリへの HTTP または HTTPS クローン URL。また、AWS アカウントを GitHub Enterprise Server アカウントに接続する必要があります。これを行うには、CodeBuild コンソールを使用してビルドプロジェクトを作成します。

  1. GitHub Enterprise Server で個人用アクセストークンを作成します。

  1. このトークンをクリップボードにコピーし、CodeBuild プロジェクトの作成時に使用します。詳細については、GitHub Help ウェブサイトの [Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) を参照してください。

  1. コンソールを使用して CodeBuild プロジェクトを作成する場合、[**ソース**] の [**ソースプロバイダー**] で [**GitHub Enterprise**] を選択します。

  1. [**個人用アクセストークン**] には、クリップボードにコピーしたトークンを貼り付けます。[**トークンの保存**] を選択します。これで、CodeBuild アカウントが GitHub Enterprise Server アカウントに接続されました。
+ GitLab および GitLab セルフマネージドの場合は、ソースコードと buildspec ファイルが格納されているリポジトリへの HTTPS クローン URL です。GitLab を使用する場合は、URL に gitlab.com を含める必要があります。GitLab セルフマネージドを使用する場合、URL に gitlab.com を含める必要はありません。AWS アカウントを GitLab または GitLab セルフマネージドアカウントに接続する必要があります。これを行うには、CodeBuild コンソールを使用してビルドプロジェクトを作成します。
  + デベロッパーツールのナビゲーションペインで **[設定]**、**[接続]**、**[接続を作成]** の順に選択します。このページで、GitLab または GitLab セルフマネージド接続を作成し、**[GitLab に接続]** を選択します。
+ Bitbucket の場合は、ソースコードと buildspec ファイルが格納されているリポジトリへの HTTPS クローン URL。URL には bitbucket.org が含まれている必要があります。また、AWS アカウントを Bitbucket アカウントに接続する必要があります。これを行うには、CodeBuild コンソールを使用してビルドプロジェクトを作成します。

  1. コンソールを使用して Bitbucket に接続 (または再接続) する場合は、Bitbucket の [**Confirm access to your account**] ページで、[**Grant access**] を選択します (Bitbucket アカウントに接続した後、ビルドプロジェクトの作成を完了する必要はありません。CodeBuild コンソールを閉じることができます。) 
+ AWS CodePipeline の場合は、`location` に `source` 値を指定しないでください。CodePipeline ではパイプラインを作成するときに、パイプラインのソースステージでソースコードの場所を指定するため、この値は CodePipeline では無視されます。

source/**gitCloneDepth**  <a name="cli.source.gitclonedepth"></a>
オプション。ダウンロードする履歴の深さ。最小値は 0 です。この値が 0、あるいは 25 より大きいか指定されていない場合、完全な履歴が各ビルドプロジェクトと共にダウンロードされます。ソースタイプが Amazon S3 である場合、この値はサポートされません。

source/**buildspec**  <a name="cli.source.buildspec"></a>
オプション。使用するビルド仕様定義またはファイル。この値が指定されていない場合や、空の文字列に設定されている場合、ソースコードのルートディレクトリに `buildspec.yml` ファイルが含まれている必要があります。この値が設定されている場合は、インラインのビルド仕様定義か、プライマリソースのルートディレクトリからの相対的な代替 buildspec ファイルへのパス、S3 バケットへのパスになります。バケットは、ビルドプロジェクトと同じ AWS リージョンに存在する必要があります。ARN を使用して buildspec ファイルを指定します（例: `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`）。詳細については、「[buildspec ファイル名とストレージの場所](build-spec-ref.md#build-spec-ref-name-storage)」を参照してください。

source/**auth**  <a name="cli.source.auth"></a>
ビルドするソースコードにアクセスするための CodeBuild の承認設定に関する情報が含まれています。

source/auth/**type**  <a name="cli.source.auth.type"></a>
必須。使用する権限付与タイプ。有効な値は次のとおりです。  
+ `OAUTH`
+ `CODECONNECTIONS`
+ `SECRETS_MANAGER`

source/auth/**resource**  <a name="cli.source.auth.resource"></a>
オプション。指定した権限付与タイプに適用されるリソース値。これは Secrets Manager ARN または CodeConnections ARN になります。

source/**reportBuildStatus**  <a name="cli.source.reportbuildstatus"></a>
ビルドの開始と完了のステータスをソースプロバイダーに送信するかどうかを指定します。これを GitHub、GitHub Enterprise Server、または Bitbucket 以外のソースプロバイダーに対して設定すると、`invalidInputException` がスローされます。  
ソースプロバイダにビルド状態を報告できるようにするには、ソースプロバイダに関連付けられたユーザーがリポジトリへの書き込みアクセス権を持っている必要があります。ユーザーが書き込みアクセス権を持っていない場合、ビルドのステータスは更新できません。詳細については、「[ソースプロバイダーのアクセス](access-tokens.md)」を参照してください。

source/**buildStatusConfig**  <a name="cli.source.buildstatusconfig"></a>
CodeBuild ビルドプロジェクトがソースプロバイダにビルドステータスを報告する方法を定義する情報が含まれています。このオプションは、ソースタイプが `GITHUB`、`GITHUB_ENTERPRISE`、または `BITBUCKET` の場合にのみ使用されます。    
source/buildStatusConfig/**context**  
Bitbucket リソースでは、このパラメータは、Bitbucket コミットステータスの `name` パラメータに使用されます。GitHub ソースでは、このパラメータは、GitHub コミットステータスの `context` パラメータに使用されます。  
例えば、`context` には、CodeBuild 環境変数を使用したビルド番号と webhook トリガーが含まれます。  

```
AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
```
これにより、webhook プルリクエストイベントによってトリガーされた build \$124 では、コンテキストは次のようになります。  

```
AWS CodeBuild sample-project Build #24 - pr/8
```  
source/buildStatusConfig/**targetUrl**  
Bitbucket リソースでは、このパラメータは、Bitbucket コミットステータスの `url` パラメータに使用されます。GitHub ソースでは、このパラメータは、GitHub コミットステータスの `target_url` パラメータに使用されます。  
たとえば、「`targetUrl`」と「`https://aws.amazon.com/codebuild/<path to build>`」とコミットステータスをこのURLにリンクします。  
また、URL に情報を追加するには、CodeBuild 環境変数を `targetUrl` に含めることもできます。例えば、ビルド領域を URL に追加するには、`targetUrl` を以下に設定します:  

```
"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"
```
ビルド領域が `us-east-2` の場合、これは次のように展開されます。  

```
https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
```

source/**gitSubmodulesConfig**  <a name="cli.source.gitsubmodulesconfig"></a>
オプション。Git サブモジュール設定に関する情報。CodeCommit、GitHub、GitHub Enterprise Server、Bitbucket でのみ使用されます。    
source/gitSubmodulesConfig/**fetchSubmodules**  
リポジトリに Git サブモジュールを含める場合は、`fetchSubmodules` を `true` に設定します。含まれている Git サブモジュールは HTTPS として設定する必要があります。

source/**InsecureSsl**  <a name="cli.source.insecuressl"></a>
オプション。GitHub Enterprise Server でのみ使用されます。GitHub Enterprise Server プロジェクトリポジトリに接続するときの TLS 警告を無視するには、この値を `true` に設定します。デフォルト値は `false` です。`InsecureSsl` は、テスト目的でのみ使用してください。本番環境では使用しないでください。

source/**sourceIdentifier**  <a name="cli.source.sourceidentifier"></a>
プロジェクトソースのユーザー定義識別子。プライマリソースの場合、省略可能です。セカンダリソースでは必須です。

#### **secondarySources**
<a name="cli.secondarysources"></a>

オプション。ビルドプロジェクトのセカンダリソースに関する情報が含まれている、[ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) オブジェクトの配列。最大 12 個のセカンダリソースを追加できます。`secondarySources` オブジェクトは、[**ソース**](#cli.source) オブジェクトで使用されるのと同じプロパティを使用します。セカンダリソースオブジェクトでは、`sourceIdentifier` は必須です。

#### **secondarySourceVersions**
<a name="cli.secondarysourceversions"></a>

オプション。[ProjectSourceVersion](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html) オブジェクトの配列。`secondarySourceVersions` をビルドレベルで指定すると、これよりも優先されます。

#### **sourceVersion**
<a name="cli.sourceversion"></a>

オプション。このプロジェクト用に構築するビルド入力のバージョン。指定しない場合、最新のバージョンが使用されます。指定した場合、次のいずれかであることが必要です。
+ CodeCommit の場合: 使用するコミット ID、ブランチ、または Git タグ。
+ GitHub の場合、ビルドするソースコードのバージョンに対応するコミット ID、プルリクエスト ID、ブランチ名、またはタグ名。プルリクエスト ID を指定する場合、`pr/pull-request-ID` (例: `pr/25`) 形式を使用する必要があります。ブランチ名を指定すると、ブランチの HEAD コミット ID が使用されます。指定しない場合は、デフォルトブランチの HEAD コミット ID が使用されます。
+ GitLab の場合、コミット ID、プルリクエスト ID、ブランチ名、タグ名、または参照およびコミット ID です。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。
+ Bitbucket の場合、ビルドするソースコードのバージョンに対応するコミット ID、ブランチ名、またはタグ名。ブランチ名を指定すると、ブランチの HEAD コミット ID が使用されます。指定しない場合は、デフォルトブランチの HEAD コミット ID が使用されます。
+ Amazon S3 の場合、使用するビルド入力 ZIP ファイルを表すオブジェクトのバージョン ID。

`sourceVersion` をビルドレベルで指定した場合、そのバージョンはこの (プロジェクトレベルの) `sourceVersion` より優先されます。詳細については、「[を使用したソースバージョンサンプル AWS CodeBuild](sample-source-version.md)」を参照してください。

#### **artifacts**
<a name="cli.artifacts"></a>

必須。このビルドプロジェクトの出力アーティファクト設定に関する情報が含まれている、[ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) オブジェクト。`artifacts` オブジェクトを追加したら、[secondaryArtifacts](#cli.secondaryartifacts) を使用して最大 12 個のアーティファクトを追加できます。これらの設定には以下が含まれます。

artifacts/**type**  <a name="cli.artifacts.type"></a>
必須。ビルド出力アーティファクトのタイプ。有効な値は次のとおりです。  
+ `CODEPIPELINE`
+ `NO_ARTIFACTS`
+ `S3`

artifacts/**location**  <a name="cli.artifacts.location"></a>
`S3` アーティファクトタイプでのみ使用されます。他のアーティファクトタイプには使用されません。  
前提条件で作成または識別した出力バケットの名前。

artifacts/**path**  <a name="cli.artifacts.path"></a>
`S3` アーティファクトタイプでのみ使用されます。他のアーティファクトタイプには使用されません。  
ZIP ファイルまたはフォルダを配置する出力バケットのパス。`path` の値を指定しない場合、CodeBuild では `namespaceType` (指定されている場合) と `name` を使用して、ビルド出力 ZIP ファイルまたはフォルダのパスと名前を決定します。たとえば、`MyPath` を `path` に、`MyArtifact.zip` に `name` 指定すると、パスと名前は「`MyPath/MyArtifact.zip`」になります。

artifacts/**namespaceType**  <a name="cli.artifacts.namespacetype"></a>
`S3` アーティファクトタイプでのみ使用されます。他のアーティファクトタイプには使用されません。  
ビルド出力 ZIP ファイルまたはフォルダの名前空間。有効な値は、`BUILD_ID` および `NONE` です。`BUILD_ID` を使用してビルド出力 ZIP ファイルまたはフォルダのパスにビルド ID を挿入します。それ以外の場合は、`NONE` を使用します。`namespaceType` の値を指定しない場合、CodeBuild では `path` (指定されている場合) と `name` を使用して、ビルド出力 ZIP ファイルまたはフォルダのパスと名前を決定します。たとえば、`MyPath` を `path` に、`BUILD_ID` を `namespaceType`、`MyArtifact.zip` に `name` 指定すると、パスと名前は「`MyPath/build-ID/MyArtifact.zip`」になります。

artifacts/**name**  <a name="cli.artifacts.name"></a>
`S3` アーティファクトタイプでのみ使用されます。他のアーティファクトタイプには使用されません。  
`location` 内のビルド出力 ZIP ファイルまたはフォルダの名前。たとえば、`MyPath` を `path` に、`MyArtifact.zip` に `name` 指定すると、パスと名前は「`MyPath/MyArtifact.zip`」になります。

artifacts/**overrideArtifactName**  <a name="cli.artifacts.overrideartifactname"></a>
S3 アーティファクトタイプ でのみ使用されます。他のアーティファクトタイプには使用されません。  
オプション。`true` に設定すると、buildspec ファイルの `artifacts` ブロックで指定された名前が、`name` を上書きします。詳細については、「[CodeBuild のビルド仕様に関するリファレンス](build-spec-ref.md)」を参照してください。

artifacts/**packaging**  <a name="cli.artifacts.packaging"></a>
`S3` アーティファクトタイプでのみ使用されます。他のアーティファクトタイプには使用されません。  
オプション。アーティファクトをパッケージ化する方法を指定します。許可された値は次のとおりです:    
なし  
ビルドアーティファクトを含むフォルダを作成します。これは、デフォルト値です。  
ZIP  
ビルドアーティファクトを含む ZIP ファイルを作成します。

#### secondaryArtifacts
<a name="cli.secondaryartifacts"></a>

オプション。ビルドプロジェクトのセカンダリアーティファクト設定に関する情報が含まれている、[ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) オブジェクトの配列。最大 12 個のセカンダリアーティファクトを追加できます。`secondaryArtifacts` は、[**artifacts**](#cli.artifacts) オブジェクトで使用されているのと同じ設定の多くを使用します。

#### cache
<a name="cli.cache"></a>

必須。このビルドプロジェクトのキャッシュ設定に関する情報が含まれている、[ProjectCache](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectCache.html) オブジェクト。詳細については、「[キャッシュビルド](build-caching.md)」を参照してください。

#### 環境
<a name="cli.environment"></a>

必須。このプロジェクトのビルド環境設定に関する情報が含まれている、[ProjectEnvironment](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html) オブジェクト。設定は次のとおりです。

environment/**type**  <a name="cli.environment.type"></a>
必須。構築環境のタイプ。詳細については、*CodeBuild API リファレンス*の「[型](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-type)」を参照してください。

environment/**image**  <a name="cli.environment.image"></a>
必須。このビルド環境で使用される Docker イメージ識別子。通常、この識別子は *image-name*:*tag* として表されます。例えば、CodeBuild で Docker イメージの管理に使用する Docker リポジトリの場合、これは `aws/codebuild/standard:5.0` です。Docker Hub では、`maven:3.3.9-jdk-8` です。Amazon ECR では、`account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag` です。詳細については、「[CodeBuild に用意されている Docker イメージ](build-env-ref-available.md)」を参照してください。

environment/**computeType**  <a name="cli.environment.computetype"></a>
必須。このビルド環境で使用されるコンピュートリソースを指定します。詳細については、*CodeBuild API リファレンス*の「[computeType](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-computeType)」を参照してください。

environment/**certificate**  <a name="cli.environment.certificate"></a>
オプション。Amazon S3 バケットの ARN、パスのプレフィックス、および PEM エンコードされた証明書を含むオブジェクトキー。オブジェクトキーとして、PEM エンコードされた証明書が含まれている .pem ファイルまたは .zip ファイルのいずれかを使用できます。たとえば、Amazon S3 バケット名が `<my-bucket>`、パスのプレフィックスが `<cert>`、オブジェクトキー名が `<certificate.pem>` である場合、`certificate` に使用できる形式は `<my-bucket/cert/certificate.pem>` または `arn:aws:s3:::<my-bucket/cert/certificate.pem>` です。

environment/**environmentVariables**  <a name="cli.environment.environmentvariables"></a>
オプション。このビルド環境に指定する環境変数が含まれている、[EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html) オブジェクトの配列。各環境変数は、オブジェクトとして表されます。`name`、`value`、および `type` の `name`、`value`、 および `type`。  
コンソールと AWS CLI のユーザーはすべての環境変数を表示できます。環境変数の表示に懸念がない場合は、「`name`」を「`value`」および 「`type`」を「`PLAINTEXT`」に設定します。  
Amazon EC2 Systems Manager パラメータストアまたは AWS Secrets Manager には、AWS アクセスキー ID、AWS シークレットアクセスキー、パスワードなどの機密値を持つ環境変数をパラメータとして保存することをお勧めします。`name` の場合、保存されているパラメータについては、CodeBuild の識別子を参照するように設定します。  
Amazon EC2 Systems Manager パラメータストアを使用する場合、`value` には、パラメータストアに保存されているとおりにパラメータの名前を設定します。`type` を `PARAMETER_STORE` に設定します。`/CodeBuild/dockerLoginPassword` という名前のパラメータを使用するには、たとえば、「`name`」を「`LOGIN_PASSWORD`」に設定。`value` を `/CodeBuild/dockerLoginPassword` に設定します。`type` を `PARAMETER_STORE` に設定します。  
Amazon EC2 Systems Manager パラメータストアを使用する場合、パラメータは `/CodeBuild/` で始まるパラメータ名（例: `/CodeBuild/dockerLoginPassword`）で保存することをお勧めします。CodeBuild コンソールを使用して、Amazon EC2 Systems Manager にパラメータを作成することができます。[**パラメータの作成**] を選択し、ダイアログボックスの手順に従います。(ダイアログボックスでは、[**KMS キー**] の場合、アカウントの AWS KMS キーの ARN を指定できます。Amazon EC2 Systems Manager では、このキーを使用して、保存中にパラメータの値を暗号化し、取得中に復号化します)。CodeBuild コンソールを使用してパラメータを作成した場合、コンソールは保存されている `/CodeBuild/` パラメータ名を開始します。詳細については、「*Amazon EC2 Systems Manager ユーザーガイド*」の「[Systems Manager パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html)」および「[Systems Manager パラメータストアコンソールのチュートリアル](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console)」を参照してください。  
ビルドプロジェクトが Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで `ssm:GetParameters` アクションを許可する必要があります。以前に **[New service role]** (新しいサービスロール) を選択した場合は、CodeBuild のビルドプロジェクトのデフォルトのサービスロールにこのアクションが含まれています。ただし [**既存のサービスロール**] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。  
ビルドプロジェクトが、`/CodeBuild/` で始まらないパラメータ名を持つ、Amazon EC2 Systems Manager パラメータストアに保存されているパラメータを参照し、[**新しいサービスロール**] を選択した場合、`/CodeBuild/` で始まらないパラメータ名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールで、`/CodeBuild/` で始まるパラメータ名にのみアクセスが許可されるためです。  
[**新しいサービスロールを作成**] を選択した場合、サービスロールには、Amazon EC2 Systems Manager パラメータストアの `/CodeBuild/` 名前空間ですべてのパラメータを復号するアクセス権限が含まれます。  
既存の環境変数は、設定した環境変数により置き換えられます。たとえば、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_` で始まる名前の環境変数は設定しないでください。このプレフィックスは内部使用のために予約されています。  
同じ名前の環境変数が複数の場所で定義されている場合は、その値は次のように決定されます。  
+ ビルド開始オペレーション呼び出しの値が最も優先順位が高くなります。
+ ビルドプロジェクト定義の値が次に優先されます。
+ ビルド仕様宣言の値の優先順位が最も低くなります。
Secrets Manager を使用する場合、`value` には、Secrets Manager に保存されているパラメータの名前を設定します。`type` を `SECRETS_MANAGER` に設定します。`/CodeBuild/dockerLoginPassword` という名前のシークレットを使用するには、たとえば、「`name`」を「`LOGIN_PASSWORD`」に設定。`value` を `/CodeBuild/dockerLoginPassword` に設定します。`type` を `SECRETS_MANAGER` に設定します。  
Secrets Manager を使用する場合は、「`/CodeBuild/`」で始まる名前でシークレットを保存することをお勧めします(たとえば、`/CodeBuild/dockerLoginPassword`)。詳細については、*AWS Secrets Managerユーザーガイド*の「[AWS Secrets Manager とは](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)」を参照してください。  
ビルドプロジェクトが Secrets Manager パラメータストアに保存されているパラメータを参照する場合、ビルドプロジェクトのサービスロールで `secretsmanager:GetSecretValue` アクションを許可する必要があります。以前に **[New service role]** (新しいサービスロール) を選択した場合は、CodeBuild のビルドプロジェクトのデフォルトのサービスロールにこのアクションが含まれています。ただし [**既存のサービスロール**] を選択した場合は、このアクションをサービスロールに個別に含める必要があります。  
ビルドプロジェクトが、`/CodeBuild/` で始まらないパラメータ名を持つ、Secrets Manager に保存されているパラメータを参照し、**[新しいサービスロール] **を選択した場合、`/CodeBuild/` で始まらないシークレット名にアクセスできるようにサービスロールを更新する必要があります。これは、サービスロールで、`/CodeBuild/` で始まるシークレット名にのみアクセスが許可されるためです。  
[**新しいサービスロール**] を選択した場合、作成されるサービスロールには、Secrets Manager の `/CodeBuild/` 名前空間ですべてのシークレットを復号するアクセス許可が含まれます。

environment/**registryCredential**  <a name="cli.environment.registrycredential"></a>
オプション。プライベート Docker レジストリへのアクセスを提供する認証情報を指定する [RegistryCredential](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_RegistryCredential.html) オブジェクト。    
environment/registryCredential/**credential**  
AWS Managed Services を使用して作成された認証情報の ARN または名前を指定します。認証情報の名前を使用できるのは、認証情報が現在のリージョン内に存在する場合のみです。  
environment/registryCredential/**credentialProvider**  
唯一の有効な値は `SECRETS_MANAGER` です。
これを設定した場合:   
+ `imagePullCredentials` を に設定する必要があります。`SERVICE_ROLE`
+ 選別されたイメージや Amazon ECR イメージは使用できません。

environment/**imagePullCredentialsType**  <a name="cli.environment.imagepullcredentialstype"></a>
オプション。ビルドのイメージをプルするために CodeBuild で使用する認証情報のタイプ。2 つの有効な値があります。    
CODEBUILD  
`CODEBUILD` は、CodeBuild で独自の認証情報を使用することを指定します。CodeBuild サービスプリンシパルを信頼するには、Amazon ECR リポジトリポリシーを編集する必要があります。  
SERVICE\$1ROLE  
CodeBuild でビルドプロジェクトのサービスロールを使用することを指定します。
クロスアカウントまたはプライベートレジストリイメージを使用する場合は、`SERVICE_ROLE` の認証情報を使用する必要があります。CodeBuild の選別されたイメージを使用する場合は、`CODEBUILD` の認証情報を使用する必要があります。

environment/**privilegedMode**  <a name="cli.environment.privilegedmode"></a>
このビルドプロジェクトを使用して Docker イメージをビルドする計画の場合のみ、`true` に設定します。それ以外の場合、関連付けられているビルドで Docker デーモンと通信しようとすると、すべて失敗します。ビルドが Docker デーモンと連係動作できるように、Docker デーモンも起動する必要があります。これを行う 1 つの方法は、次のビルドコマンドを実行して buildspec ファイルの `install` フェーズで Docker デーモンを初期化することです。Docker をサポートする CodeBuild によって提供されるビルド環境イメージを指定した場合は、これらのコマンドを実行しないでください。  
デフォルトでは、Docker デーモンは非 VPC ビルドで有効になっています。VPC ビルドに Docker コンテナを使用する場合は、Docker Docs ウェブサイトの「[Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)」を参照して、特権モードを有効にします。また、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"
```

#### serviceRole
<a name="cli.servicerole"></a>

必須。CodeBuild がユーザーに代わってサービスとやり取りするために使用するサービスロールの ARN (例: `arn:aws:iam::account-id:role/role-name`)。

#### autoRetryLimit
<a name="cli.autoretrylimit"></a>

オプション。ビルドが失敗した後、さらに自動で再試行する回数です。例えば、自動再試行の制限が 2 に設定されている場合、CodeBuild は `RetryBuild` API を呼び出して、さらに最大 2 回までビルドを自動的に再試行します。

#### timeoutInMinutes
<a name="cli.timeoutinminutes"></a>

オプション。5〜2,160 分 (36 時間) の分単位の時間。この時間が経過してもビルドが完了していない場合、CodeBuild はビルドを停止します。指定しない場合は、デフォルトの 60 が使用されます。CodeBuild がタイムアウトによりビルドを停止したかどうか、およびそのタイミングを確認するには、`batch-get-builds` コマンドを実行します。ビルドが停止しているかどうかを確認するには、出力で `buildStatus` の `FAILED` 値を調べます。ビルドがタイムアウトした時間を確認するには、 出力で `endTime` の`phaseStatus` 値に関連付けられている `TIMED_OUT` 値を調べます。

#### queuedTimeoutInMinutes
<a name="cli.queuedtimeoutinminutes"></a>

オプション。5〜480 分 (8 時間) の分単位の時間。この時間が経過すると、ビルドがキューされている場合に CodeBuild によってビルドが停止されます。指定しない場合は、デフォルトの 60 が使用されます。

#### encryptionKey
<a name="cli.encryptionkey"></a>

オプション。ビルド出力を暗号化するために CodeBuild で使用する AWS KMS key のエイリアスまたは ARN。エイリアスを指定する場合に、`arn:aws:kms:region-ID:account-ID:key/key-ID` 形式を使用し、エイリアスが存在する場合には、`alias/key-alias` 形式を使用します。指定しない場合は、Amazon S3 の AWS 管理 KMS キーが使用されます。

#### tags
<a name="cli.tags"></a>

オプション。このビルドプロジェクトに関連付けるタグを提供する [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) オブジェクトの配列。最大 50 個のタグを指定できます。これらのタグは、CodeBuild ビルドプロジェクトタグをサポートする任意の AWS のサービスで使用できます。各タグは、「`key`」と「`value`」オブジェクトとして表現されます。

#### vpcConfig
<a name="cli.vpcconfig"></a>

オプション。[VpcConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_VpcConfig.html) オブジェクト。プロジェクトの VPC 設定に関する情報を含む。詳細については、「[Amazon Virtual Private Cloud AWS CodeBuild で を使用する](vpc-support.md)」を参照してください。

これらのプロパティには、次のものがあります。

vpcId  
必須。CodeBuild で使用される VPC ID。リージョン内の VPC ID を一覧表示するには、次のコマンドを実行します。  

```
aws ec2 describe-vpcs --region <region-ID>
```

サブネット  
必須。CodeBuild で使用されるリソースを含むサブネット ID の配列。これらの ID を取得するには、次のコマンドを実行します。  

```
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>
```

securityGroupIds  
必須。VPC 内のリソースへのアクセスを許可するために CodeBuild で使用されるセキュリティグループ ID の配列。これらの ID を取得するには、次のコマンドを実行します。  

```
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>
```

#### badgeEnabled
<a name="cli.badgeenabled"></a>

オプション。CodeBuild プロジェクトにビルドバッジを含めるかどうかを指定します。`true` に設定してビルドバッジを有効にするか、そうでない場合は `false` に設定します。詳細については、「[CodeBuild でのビルドバッジサンプル](sample-build-badges.md)」を参照してください。

#### logsConfig
<a name="cli.logsconfig"></a>

このビルドのログが配置されている場所に関する情報が含まれている、[LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_LogsConfig.html) オブジェクト。

logsConfig/**cloudWatchLogs**  <a name="cli.logsconfig.cloudwatchlogs"></a>
CloudWatch Logs へのログのプッシュに関する情報が含まれている、[CloudWatchLogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CloudWatchLogsConfig.html) オブジェクト。

logsConfig/**s3Logs**  <a name="cli.logsconfig.s3logs"></a>
Amazon S3 へのログのプッシュに関する情報が含まれている、[S3LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_S3LogsConfig.html) オブジェクト。

#### fileSystemLocations
<a name="cli.filesystemlocations"></a>

オプション。Amazon EFS 設定に関する情報が含まれている、[ProjectFileSystemsLocation](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectFileSystemLocation.html) オブジェクトの配列。

#### buildBatchConfig
<a name="cli.buildbatchconfig"></a>

オプション。`buildBatchConfig` オブジェクトは [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html) 構造体であり、プロジェクトのバッチビルド設定情報を含みます。

buildBatchConfig/**serviceRole**  
バッチビルドプロジェクトのサービスロール ARN を指定します。

buildBatchConfig/**combineArtifacts**  
バッチビルドのビルドアーティファクトを 1 つのアーティファクトの場所に結合するかどうかを指定するブール値。

buildBatchConfig/restrictions/**maximumBuildsAllowed**  
許可されるビルドの最大数。

buildBatchConfig/restrictions/**computeTypesAllowed**  
バッチビルドで許可されるコンピューティングタイプを指定する文字列の配列。これらの値については、「[ビルド環境のコンピューティングタイプ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)」を参照してください。

buildBatchConfig/restrictions/**fleetsAllowed**  
バッチビルドで許可されるフリートを指定する文字列の配列。詳細については、「[リザーブドキャパシティフリートでビルドを実行](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html)」を参照してください。

buildBatchConfig/**timeoutInMinutes**  
バッチビルドを完了するまでの最大時間 (分単位) 。

buildBatchConfig/**batchReportMode**   
バッチビルドのソースプロバイダーにビルドステータスレポートを送信する方法を指定します。有効な値を次に示します。    
`REPORT_AGGREGATED_BATCH`  
(デフォルト) すべてのビルドステータスを 1 つのステータスレポートに集約します。  
`REPORT_INDIVIDUAL_BUILDS`  
個々のビルドごとに個別のステータスレポートを送信します。

#### concurrentBuildLimit
<a name="cli.concurrentbuildlimit"></a>

このジョブで許可される同時実行の最大数を設定します。

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

### プロジェクトの作成
<a name="cp-cli-create-project"></a>

プロジェクトを作成するには、**[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)** コマンドを再度実行し、JSON ファイルを渡します。

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

成功した場合、JSON 表現の [Project](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) オブジェクトが、コンソール出力に表示されます。このデータの例については、「[CreateProject レスポンスの構文](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_ResponseSyntax)」を参照してください。

ビルドプロジェクトの名前を除いて、後でビルドプロジェクトの設定を変更することができます。詳細については、「[ビルドプロジェクトの設定の変更 (AWS CLI)](change-project.md#change-project-cli)」を参照してください。

ビルドの実行を開始するには、「[ビルドの実行 (AWS CLI)](run-build-cli.md)」を参照してください。

ソースコードが GitHub リポジトリに保存されていて、コード変更がリポジトリにプッシュされるたびに CodeBuild でソースコードを再構築する場合は、「[ビルドの実行の自動開始 (AWS CLI)](run-build-cli-auto-start.md)」を参照してください。

## ビルドプロジェクトの作成 (AWS SDK)
<a name="create-project-sdks"></a>

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

## ビルドプロジェクトの作成 (CloudFormation)
<a name="create-project-cloud-formation"></a>

CloudFormation での AWS CodeBuild の使用については、*AWS CloudFormation ユーザーガイド*の「[CodeBuild の CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)」を参照してください。