

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

# CodeBuild ルール
<a name="rule-reference-CodeBuild"></a>

条件を作成する際、CodeBuild ルールを追加できます。このセクションでは、ルールパラメータのリファレンスを提供します。ルールと条件の詳細については、「[ステージ条件はどのように機能しますか?](concepts-how-it-works-conditions.md)」を参照してください。

CodeBuild ルールを使用して、ビルド実行が beforeEntry 条件で正常に完了するなど、ビルドプロジェクトがルールの基準を満たす条件を作成できます。

**注記**  
**スキップ**結果で設定された beforeEntry 条件では、`LambdaInvoke` および `VariableCheck` のルールのみを使用できます。

**Topics**
+ [サービスロールのポリシーのアクセス許可](#rule-reference-Commands-policy)
+ [ルールタイプ](#rule-reference-Commands-type)
+ [設定パラメータ](#rule-reference-Commands-config)
+ [ルール設定の例](#rule-reference-Commands-example)
+ [関連情報](#rule-reference-Commands-links)

## サービスロールのポリシーのアクセス許可
<a name="rule-reference-Commands-policy"></a>

このルールのアクセス許可については、CodePipeline サービスロールのポリシーステートメントに以下を追加します。アクセス許可をリソースレベルに絞り込みます。

```
{
    "Effect": "Allow",
    "Action": [
        "codebuild:BatchGetBuilds",
        "codebuild:StartBuild"
    ],
    "Resource": "resource_ARN"
},
```

## ルールタイプ
<a name="rule-reference-Commands-type"></a>
+ カテゴリ: `Rule`
+ 所有者: `AWS`
+ プロバイダー: `CodeBuild`
+ バージョン: `1`

## 設定パラメータ
<a name="rule-reference-Commands-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)」を参照してください。

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

**EnvironmentVariables**  
必須: いいえ  
このパラメータの値は、パイプラインの CodeBuild アクションの環境変数を設定するために使用されます。`EnvironmentVariables` パラメータの値は、環境変数オブジェクトの JSON 配列の形式をとります。「[アクション宣言（CodeBuild の例）](action-reference-CodeBuild.md#action-reference-CodeBuild-example)」のパラメータ例を参照してください。  
各オブジェクトには 3 つの部分があり、それらはすべて文字列です。  
+ `name`: 環境変数の名前またはキー。
+ `value`: 環境変数の値。`PARAMETER_STORE` または `SECRETS_MANAGER` タイプを使用する場合、この値はそれぞれ AWS Systems Manager Parameter Store に保存済みのパラメータ名か、AWS Secrets Manager に保存済みのシークレット名である必要があります。
**注記**  
機密情報 (特に AWS 認証情報) を保存する場合は、環境変数を使用しないことを強くお勧めします。CodeBuild コンソールまたは AWS CLI を使用すると、環境変数がプレーンテキストで表示されます。機密の値の場合は、代わりに `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="rule-reference-Commands-example"></a>

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

```
name: codebuild-rule
ruleTypeId:
  category: Rule
  owner: AWS
  provider: CodeBuild
  version: '1'
configuration:
  ProjectName: my-buildproject
  EnvironmentVariables: '[{"name":"VAR1","value":"variable","type":"PLAINTEXT"}]'
inputArtifacts:
- name: SourceArtifact
region: us-east-1
```

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

```
{
    "name": "codebuild-rule",
    "ruleTypeId": {
        "category": "Rule",
        "owner": "AWS",
        "provider": "CodeBuild",
        "version": "1"
    },
    "configuration": {
        "ProjectName": "my-buildproject"
    },
    "inputArtifacts": [
        {
            "name": "SourceArtifact",
            "EnvironmentVariables": "[{\"name\":\"VAR1\",\"value\":\"variable\",\"type\":\"PLAINTEXT\"}]"
        }
    ],
    "region": "us-east-1"
}
```

------

## 関連情報
<a name="rule-reference-Commands-links"></a>

このルールを利用する際に以下の関連リソースが役立ちます。
+ ルールと条件の詳細については、「*CodePipeline API ガイド*」の「[条件](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)」、「[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html)」、「[RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)」を参照してください。