

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

# での EB CLI の使用 AWS CodeBuild
<a name="eb-cli-codebuild"></a>

[AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/) はソースコードをコンパイルし、単体テストを実行して、すぐにデプロイできるアーティファクトを生成します。CodeBuild を EB CLI をともに使用すれば、ソースコードからのアプリケーションの構築を自動化できます。環境の作成とその後のデプロイはビルドステップで始まり、続いて生成されるアプリケーションがデプロイされます。

**注記**  
一部のリージョンでは、CodeBuild を使用できない場合があります。これらのリージョンでは、Elastic Beanstalk と CodeBuild を統合できません。  
各リージョンで提供される AWS サービスの詳細については、[「リージョンテーブル](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。

## Creating an application
<a name="eb-cli-codebuild-using"></a>

**CodeBuild を使用する Elastic Beanstalk アプリケーションを作成するには**

1. アプリケーションフォルダに、CodeBuild ビルド仕様ファイル [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html) を含めます。

1. Elastic Beanstalk に固有のオプションを持つ `eb_codebuild_settings` エントリをファイルに追加します。

1. フォルダで [**eb init**](eb3-init.md) を実行します。
**注記**  
EB CLI を CodeBuild と共に使用する際には、アプリケーション名にピリオド (`.`) やスペース (` `) を使用しないでください。

Elastic Beanstalk は、[CodeBuild ビルド仕様ファイル形式](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)を拡張して、次の追加設定を含めます。

```
eb_codebuild_settings:
  CodeBuildServiceRole: role-name
  ComputeType: size
  Image: image
  Timeout: minutes
```

`CodeBuildServiceRole`  
CodeBuild がユーザーに代わって依存サービスとやり取りするために使用できる AWS Identity and Access Management (IAM) AWS サービスロールの ARN または名前。この値は必須です。これを省略すると、それ以降の **eb create** または **eb deploy** コマンドは失敗します。  
CodeBuild のサービスロールの作成に関する詳細については、「AWS CodeBuild ユーザーガイド」の「[CodeBuild サービスロールの作成](https://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role)」を参照してください。  
CodeBuild 自体でアクションを実行するためのアクセス許可も必要です。Elastic Beanstalk の管理ユーザーポリシー、**AdministratorAccess-AWSElasticBeanstalk** には、 CodeBuild アクションが必要とする、すべてのアクセス許可が含まれています。管理ポリシーを使用していない場合は、ユーザーポリシーで必ず以下のアクセス権限を許可してください。  

```
  "codebuild:CreateProject",
  "codebuild:DeleteProject",
  "codebuild:BatchGetBuilds",
  "codebuild:StartBuild"
```
詳細については、「[Elastic Beanstalk ユーザーポリシーの管理](AWSHowTo.iam.managed-policies.md)」を参照してください。

`ComputeType`  
CodeBuild ビルド環境で Docker コンテナによって使用されるリソースの量。有効な値は、BUILD\$1GENERAL1\$1SMALL、BUILD\$1GENERAL1\$1MEDIUM、BUILD\$1GENERAL1\$1LARGE です。

`Image`  
CodeBuild がビルド環境に使用する Docker Hub または Amazon ECR イメージの名前。この Docker イメージには、コードを作成するために必要なすべてのツールとランタイムライブラリが含まれている必要があります。また、イメージは、アプリケーションのターゲットプラットフォームに一致する必要があります。CodeBuild では、特に Elastic Beanstalk での使用を意図した一連のイメージが管理および保守されています。それらのイメージのいずれかを使用することをお勧めします。詳細については、「AWS CodeBuild ユーザーガイド」の「[CodeBuild に用意されている Docker イメージ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html)」を参照してください。  
`Image` 値はオプションです。これを省略すると、**eb init** コマンドはターゲットプラットフォームに最適なイメージの選択を試みます。さらに、インタラクティブモードで **eb init** で実行し、イメージの選択に失敗した場合、イメージの選択が求められます。初期化が正常に終了すると、**eb init** は選択されたイメージを `buildspec.yml` ファイルに書き込みます。

`Timeout`  
CodeBuild ビルドがタイムアウトするまでの実行時間 (分)。この値はオプションです。有効な値とデフォルト値の詳細については、「[CodeBuild でのビルドプロジェクトの作成](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project.html)」を参照してください。  
このタイムアウトにより、CodeBuild の最大実行時間が制御されます。また、EB CLI はアプリケーションバージョンを作成するための最初のステップの一部としてこれを順守します。これは、[**eb create**](eb3-create.md) または [**eb deploy**](eb3-deploy.md) コマンドの `--timeout` オプションで指定する値とは異なります。後者の値は、EB CLI が環境の作成または更新を待機する最大時間を制御します。

## アプリケーションコードのビルドとデプロイ
<a name="eb-cli-codebuild-using"></a>

アプリケーションコードをデプロイする必要が生じると、EB CLI は常に CodeBuild を使用してビルドを実行し、生成されたビルドアーティファクトを環境にデプロイします。この処理は、[**eb create**](eb3-create.md) コマンドを使用してアプリケーションの Elastic Beanstalk 環境を作成するときと、後で [**eb deploy**](eb3-deploy.md) コマンドを使用してコードの変更を環境にデプロイするたびに発生します。

CodeBuild のステップが失敗した場合、環境の作成またはデプロイは開始されません。