

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

# コマンド
<a name="rule-reference-Commands"></a>

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

`Commands` ルールを使用して、コマンドの出力やファイルパスが beforeEntry 条件を満たすなど、コマンドの正常な完了のルール基準で条件を作成することができます。

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

**Topics**
+ [コマンドルールに関する考慮事項](#rule-reference-Commands-considerations)
+ [サービスロールのポリシーのアクセス許可](#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-considerations"></a>

コマンドルールには以下の考慮事項が適用されます。
+ コマンドルールは CodeBuild アクションと同様の CodeBuild リソースを使用しますが、ビルドプロジェクトを関連付けたり作成したりする必要はなく、仮想コンピューティングインスタンス内でシェル環境コマンドが許可されます。
**注記**  
コマンドルールを実行すると、個別の料金が発生します AWS CodeBuild。
+ CodePipeline のコマンドルールは CodeBuild リソースを使用するため、アクションで実行するビルドには、アカウントに対する CodeBuild のビルド制限が適用されます。コマンドルールで実行したビルドは、アカウントに設定されている同時ビルド制限にカウントされます。
+ コマンドルールを使用したビルドのタイムアウトは、CodeBuild ビルドに基づいて 55 分です。
+ コンピューティングインスタンスは、CodeBuild の分離されたビルド環境を使用します。
**注記**  
分離されたビルド環境はアカウントレベルで使用されるため、インスタンスは別のパイプライン実行に再利用される場合があります。
+ 複数行形式を除くすべての形式がサポートされています。コマンドを入力するときは、単一行形式を使用する必要があります。
+ このルールでは、CodePipeline がパイプラインサービスロールを引き受け、このロールを使用してランタイムにリソースへのアクセスを許可します。アクセス許可の範囲をアクションレベルまで絞り込むように、サービスロールを設定することをお勧めします。
+ CodePipeline サービスロールに追加されるアクセス許可の詳細については、「[CodePipeline サービスロールにアクセス許可を追加する](how-to-custom-role.md#how-to-update-role-new-services)」を参照してください。
+ コンソールでログを表示するために必要なアクセス許可の詳細については、「[コンソールでコンピューティングログを表示するために必要なアクセス許可](security-iam-permissions-console-logs.md)」を参照してください。次の画面の例では、**ログ**リンクを使用して、CloudWatch Logs で正常に完了したコマンドルールのログを表示します。  
![\[コマンドルールを含むパイプラインの [ステータス] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/commands-rule-status.png)  
![\[コマンドルールを持つパイプラインの CloudWatch の [ログ] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/commands-rule-logs.png)
+ CodePipeline の他のアクションとは異なり、アクション設定ではフィールドを設定せず、アクション設定の外部でアクション設定フィールドを設定します。

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

CodePipeline は、ルールを実行するときに、次のようにパイプライン名を使用してロググループを作成します。これにより、パイプライン名を使用してアクセス許可の範囲をリソースのログ記録に絞り込むことができます。

```
/aws/codepipeline/MyPipelineName
```

既存のサービスロールを使用している場合、コマンドアクションを使用するには、サービスロールに以下のアクセス許可を追加する必要があります。
+ logs:CreateLogGroup
+ logs:CreateLogStream
+ logs:PutLogEvents

サービスロールポリシーステートメントで、次の例に示すように、アクセス許可の範囲をパイプラインレベルに絞り込みます。

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
}
```

アクションの詳細ダイアログページを使用してコンソールでログを表示するには、ログを表示するアクセス許可をコンソールロールに追加する必要があります。詳細については、「[コンソールでコンピューティングログを表示するために必要なアクセス許可](security-iam-permissions-console-logs.md)」でコンソールのアクセス許可ポリシーの例を参照してください。

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

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

**コマンド**  
必須: はい  
`Commands` ルールで実行するシェルコマンドを指定できます。コンソールでは、各コマンドを個別の行に入力します。CLI では、コマンドを個別の文字列として入力します。  
複数行形式はサポートされていないため、エラーメッセージが表示されます。**[コマンド]** フィールドにコマンドを入力するには、単一行形式を使用する必要があります。
以下の詳細により、コマンドルールに使用するデフォルトのコンピューティングを指定します。詳細については、「CodeBuild ユーザーガイド」の「[ビルド環境のコンピューティングモードおよびタイプ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)」リファレンスを参照してください。  
+ **CodeBuild イメージ:** aws/codebuild/amazonlinux2-x86\$164-standard:5.0
+ **コンピューティングタイプ:** Linux Small
+ **環境の computeType 値: **BUILD\$1GENERAL1\$1SMALL
+ **環境タイプの値:** LINUX\$1CONTAINER

## ルール設定の例
<a name="rule-reference-Commands-example"></a>

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

```
result: FAIL
rules:
- name: CommandsRule
  ruleTypeId:
    category: Rule
    owner: AWS
    provider: Commands
    version: '1'
  configuration: {}
  commands:
  - ls
  - printenv
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "result": "FAIL",
    "rules": [
        {
            "name": "CommandsRule",
            "ruleTypeId": {
                "category": "Rule",
                "owner": "AWS",
                "provider": "Commands",
                "version": "1"
            },
            "configuration": {},
            "commands": [
                "ls",
                "printenv"
            ],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "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)」を参照してください。