

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

# AWS CodeBuild ビルドおよびテストアクションリファレンス
<a name="action-reference-CodeBuild"></a>

パイプラインの一部としてビルドとテストを実行できます。CodeBuild のビルドまたはテストアクションを実行すると、buildspec で指定されたコマンドが CodeBuild コンテナ内で実行されます。CodeBuild アクションへの入力アーティファクトとして指定されたすべてのアーティファクトは、コマンドを実行するコンテナ内で使用できます。CodeBuild は、ビルドまたはテストアクションのいずれかを提供すことができます。詳細については、「[AWS CodeBuild ユーザーガイド](https://docs.aws.amazon.com/codebuild/latest/userguide/)」を参照してください。

コンソールの CodePipeline ウィザードを使用してビルドプロジェクトを作成すると、CodeBuild のビルドプロジェクトにはソースプロバイダが CodePipeline であることが表示されます。CodeBuild コンソールでビルドプロジェクトを作成する場合、ソースプロバイダとして CodePipeline を指定することはできませんが、パイプラインにビルドアクションを追加すると CodeBuild コンソールでソースが調整されます。詳細については、[*AWS CodeBuild API リファレンス*] の [[ProductInformation](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)] を参照してください。

**Topics**
+ [アクションタイプ](#action-reference-CodeBuild-type)
+ [設定パラメータ](#action-reference-CodeBuild-config)
+ [入力アーティファクト](#action-reference-CodeBuild-input)
+ [出力アーティファクト](#action-reference-CodeBuild-output)
+ [出力変数](#action-reference-CodeBuild-variables)
+ [サービスロールのアクセス許可: CodeBuild アクション](#edit-role-codebuild)
+ [アクション宣言（CodeBuild の例）](#action-reference-CodeBuild-example)
+ [関連情報](#action-reference-CodeBuild-links)

## アクションタイプ
<a name="action-reference-CodeBuild-type"></a>
+ カテゴリ: `Build` または `Test`
+ 所有者: `AWS`
+ プロバイダー: `CodeBuild`
+ バージョン: `1`

## 設定パラメータ
<a name="action-reference-CodeBuild-config"></a>

**ProjectName**  
必須: はい  
`ProjectName` は、CodeBuild のビルドプロジェクト名です。

**PrimarySource**  
必須: 条件による  
`PrimarySource` パラメータの値は、アクションへの入力アーティファクトの名前の 1 つでなければなりません。CodeBuild は、このアーティファクトを解凍したものを含むディレクトリで buildspec のファイルを探し、buildspec コマンドを実行します。  
このパラメータは、CodeBuild アクションに複数の入力アーティファクトが指定されている場合に必要となります。アクションのソースアーティファクトが 1 つだけの場合、`PrimarySource` アーティファクトはデフォルトでそのアーティファクトになります。

**BatchEnabled**  
必須: いいえ  
この `BatchEnabled` パラメータのブール値は、アクションが同じビルド実行で複数のビルドを実行することを可能にします。  
このオプションを有効にすると、`CombineArtifacts` オプションが使用できます。  
バッチビルドを有効にしたパイプラインの例については、「[CodePipeline と CodeBuild およびバッチビルドの統合](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-batch.html)」を参照してください。

**BuildspecOverride**  
必須: いいえ  
ビルドプロジェクトのこのビルドに定義された最新バージョンを上書きするインライン buildspec 定義または buildspec ファイル宣言。プロジェクトで定義された buildspec は変更されません。  
この値は、次のいずれかに設定できます。  
+ インライン buildspec 定義。詳細については、「[Buildspec の構文](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax)」の構文リファレンスを参照してください。
+ 組み込みの環境変数 `CODEBUILD_SRC_DIR` の値に相対的な代替 buildspec ファイルへのパスか、S3 バケットへのパス。バケットは、ビルドプロジェクトと同じ AWS リージョン に存在する必要があります。ARN を使用して buildspec ファイルを指定します（例: `arn:aws:s3:::my-codebuild-sample2/buildspec.yml`）。この値が指定されていない場合や、空の文字列に設定されている場合、ソースコードのルートディレクトリに buildspec ファイルが含まれている必要があります。パスの追加の詳細については、「[buildspec ファイル名とストレージの場所](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage)」を参照してください。
このプロパティを使用すると、コンテナで実行されるビルドコマンドを変更できるため、この API を呼び出してこのパラメータを設定する権限を持つ IAM プリンシパルがデフォルト設定を上書きできることに注意してください。さらに、ソースリポジトリのファイルや Amazon S3 バケットなどの信頼できる buildspec の場所を使用することをお勧めします。

**CombineArtifacts**  
必須: いいえ  
この `CombineArtifacts` パラメータのブール値は、バッチ ビルドからのすべてのビルド アーティファクトをビルド アクションのための単一の アーティファクト ファイルにまとめます。  
このオプションを使用するには、`BatchEnabled` パラメータを有効にする必要があります。

**EnvironmentVariables**  
必須: いいえ  
このパラメータの値は、パイプラインの CodeBuild アクションの環境変数を設定するために使用されます。`EnvironmentVariables` パラメータの値は、環境変数オブジェクトの JSON 配列の形式をとります。「[アクション宣言（CodeBuild の例）](#action-reference-CodeBuild-example)」のパラメータ例を参照してください。  
各オブジェクトには 3 つの部分があり、それらはすべて文字列です。  
+ `name`: 環境変数の名前またはキー。
+ `value`: 環境変数の値。`PARAMETER_STORE` または `SECRETS_MANAGER`タイプを使用する場合、この値は AWS Systems Manager パラメータストアに既に保存されているパラメータの名前、または Secrets Manager に AWS 既に保存されているシークレットの名前である必要があります。
**注記**  
機密情報、特に AWS 認証情報を保存するために環境変数を使用することは強くお勧めしません。CodeBuild コンソールまたは CLI AWS を使用すると、環境変数がプレーンテキストで表示されます。機密の値の場合は、代わりに `SECRETS_MANAGER` タイプを使用することをお勧めします。
+ `type`: (任意) 環境変数の型。有効な値は `PARAMETER_STORE`、`SECRETS_MANAGER`、または `PLAINTEXT` です。指定しない場合、この値はデフォルトで `PLAINTEXT` になります。
環境変数の設定に `name`、`value`、および `type` を入力する場合 (特に環境変数に CodePipeline の出力変数の構文が含まれている場合) は、設定の値フィールドの 1000 文字制限を超えないようにしてください。この制限を超えると、検証エラーが返されます。
詳細については、 AWS CodeBuild API リファレンスの[EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)」を参照してください。GitHub ブランチ名に解決される環境変数を持つ CodeBuild アクションの例については、[例:CodeBuild 環境変数で BranchName 変数を使用する](actions-variables.md#actions-variables-examples-env-branchname) を参照してください。

## 入力アーティファクト
<a name="action-reference-CodeBuild-input"></a>
+ **アーティファクトの数:** `1 to 5`
+ **説明:** CodeBuild は buildspec ファイルを探し、プライマリソースアーティファクトのディレクトリから buildspec コマンドを実行します。単一の入力ソースを指定する場合、または CodeBuild アクションに複数の入力ソースを指定する場合、単一のアーティファクト、または複数の入力ソースの場合はプライマリアーティファクトを CodePipeline の `PrimarySource` アクション設定パラメータを使用して設定する必要があります。

  各入力アーティファクトは独自のディレクトリに抽出され、その場所は環境変数に保存されます。プライマリソースアーティファクトのディレクトリは `$CODEBUILD_SRC_DIR` で使用できるようになります。他のすべての入力アーティファクトのディレクトリは、`$CODEBUILD_SRC_DIR_yourInputArtifactName` で使用できるようになります。
**注記**  
CodeBuild プロジェクトで設定されたアーティファクトは、パイプラインの CodeBuild アクションで使用される入力アーティファクトになります。

## 出力アーティファクト
<a name="action-reference-CodeBuild-output"></a>
+ **アーティファクトの数:** `0 to 5` 
+ **説明:** これらは、CodeBuild の buildspec ファイルで定義されたアーティファクトを、パイプラインの後続のアクションで利用できるようにするために使用します。出力アーティファクトが 1 つだけ定義されている場合、このアーティファクトは buildspec の `artifacts` セクションの直下で定義できます。複数の出力アーティファクトを指定する場合、参照されるすべてのアーティファクトは、buildspec ファイルでセカンダリアーティファクトとして定義する必要があります。CodePipeline の出力アーティファクトの名前は、buildspec ファイルのアーティファクト識別子と一致しなければなりません。
**注記**  
CodeBuild プロジェクトで設定されたアーティファクトは、パイプラインアクションの CodePipeline 入力アーティファクトになります。

  バッチビルド用に `CombineArtifacts` パラメータが選択されている場合、出力アーティファクトの場所には、同じ実行で実行された複数のビルドから結合されたアーティファクトが含まれます。

## 出力変数
<a name="action-reference-CodeBuild-variables"></a>

このアクションは、ビルドの一部としてエクスポートされたすべての環境変数を変数として生成します。環境変数をエクスポートする方法の詳細については、*AWS CodeBuild API ガイド*の「[ EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)」を参照してください。

CodePipeline で CodeBuild 環境変数を使用する方法については、[CodeBuild アクションの出力変数](reference-variables.md#reference-variables-list-configured-codebuild) の例を参照してください。CodeBuild で使用できる環境変数のリストについては、*AWS CodeBuild ユーザーガイド*の「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

## サービスロールのアクセス許可: CodeBuild アクション
<a name="edit-role-codebuild"></a>

CodeBuild を対応すべく、以下をポリシーステートメントに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "codebuild:BatchGetBuilds",
                "codebuild:StartBuild",
                "codebuild:BatchGetBuildBatches",
                "codebuild:StartBuildBatch"
            ],
            "Resource": [
                "arn:aws:codebuild:*:111122223333:project/[[ProjectName]]"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## アクション宣言（CodeBuild の例）
<a name="action-reference-CodeBuild-example"></a>

------
#### [ YAML ]

```
Name: Build
Actions:
  - Name: PackageExport
    ActionTypeId:
      Category: Build
      Owner: AWS
      Provider: CodeBuild
      Version: '1'
    RunOrder: 1
    Configuration:
      BatchEnabled: 'true'
      CombineArtifacts: 'true'
      ProjectName: my-build-project
      PrimarySource: MyApplicationSource1
      EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]'
    OutputArtifacts:
      - Name: MyPipeline-BuildArtifact
    InputArtifacts:
      - Name: MyApplicationSource1
      - Name: MyApplicationSource2
```

------
#### [ JSON ]

```
{
    "Name": "Build",
    "Actions": [
        {
            "Name": "PackageExport",
            "ActionTypeId": {
                "Category": "Build",
                "Owner": "AWS",
                "Provider": "CodeBuild",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BatchEnabled": "true",
                "CombineArtifacts": "true",
                "ProjectName": "my-build-project",
                "PrimarySource": "MyApplicationSource1",
                "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]"
            },
            "OutputArtifacts": [
                {
                    "Name": "MyPipeline-BuildArtifact"
                }
            ],
            "InputArtifacts": [
                {
                    "Name": "MyApplicationSource1"
                },
                {
                    "Name": "MyApplicationSource2"
                }
            ]
        }
    ]
}
```

------

## 関連情報
<a name="action-reference-CodeBuild-links"></a>

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS CodeBuild ユーザーガイド](https://docs.aws.amazon.com/codebuild/latest/userguide/) – CodeBuild アクションを使用したパイプラインの例については、[「CodeBuild で CodeBuild CodePipeline を使用してコードをテストし、ビルドを実行する](https://docs.aws.amazon.com/codebuild/latest/userguide/how-to-create-pipeline.html)」を参照してください。CodeBuild のアーティファクトを複数入力・出力するプロジェクトの例については、[[CodeBuild および複数の入力ソースと出力アーティファクトのサンプルと CodePipeline の統合](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-multi-input-output.html)] および [[複数の入力ソースと出力アーティファクトのサンプル](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html)] を参照してください。
+ [チュートリアル: を使用して Android アプリを構築およびテストするパイプラインを作成する AWS Device Farm](tutorials-codebuild-devicefarm.md) - このチュートリアルでは、CodeBuild と AWS Device Farmを使用して Android アプリケーションをビルドおよびテストするパイプラインを GitHub ソースで作成するためのサンプル buildspec ファイルとサンプルアプリケーションを提供します。
+ [CodeBuild のビルド仕様リファレンス](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html) - このリファレンストピックでは、CodeBuild の buildspec ファイルを理解するための定義と例を提供します。CodeBuild で使用できる環境変数のリストについては、*AWS CodeBuild ユーザーガイド*の「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。