

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

# アクション構造リファレンス
<a name="action-reference"></a>

このセクションは、アクション設定のみのリファレンスです。パイプライン構造の概念的な概要については、「[CodePipeline パイプライン構造リファレンス](reference-pipeline-structure.md)」を参照してください。

CodePipeline の各アクションプロバイダーは、パイプライン構造の必須設定項目およびオプションの設定項目セットを使用します。このセクションでは、アクションプロバイダー別の以下のリファレンス情報を提供します。
+ `Owner` や `Provider` などのパイプライン構造アクションブロックに含まれる `ActionType` フィールドの有効な値。
+ パイプライン構造のアクションセクションに含まれる `Configuration` パラメータの説明およびその他のリファレンス情報（必須およびオプション）。
+ JSON および YAML アクションフィールドの有効な例。

このセクションは、より多くのアクションプロバイダーで定期的に更新されます。リファレンス情報は現在、次のアクションプロバイダーで利用できます。

**Topics**
+ [Amazon EC2 アクションリファレンス](action-reference-EC2Deploy.md)
+ [Amazon ECR ソースアクションリファレンス](action-reference-ECR.md)
+ [`ECRBuildAndPublish` ビルドアクションリファレンス](action-reference-ECRBuildAndPublish.md)
+ [Amazon ECS および CodeDeploy ブルー/グリーンデプロイアクションリファレンス](action-reference-ECSbluegreen.md)
+ [Amazon Elastic Container Service デプロイアクションリファレンス](action-reference-ECS.md)
+ [Amazon Elastic Kubernetes Service の `EKS` デプロイアクションリファレンス](action-reference-EKS.md)
+ [AWS Lambda デプロイアクションリファレンス](action-reference-LambdaDeploy.md)
+ [Amazon S3 デプロイアクションリファレンス](action-reference-S3Deploy.md)
+ [Amazon S3 ソースアクションリファレンス](action-reference-S3.md)
+ [AWS AppConfig デプロイアクションリファレンス](action-reference-AppConfig.md)
+ [CloudFormation デプロイアクションリファレンス](action-reference-CloudFormation.md)
+ [CloudFormation StackSets](action-reference-StackSets.md)
+ [AWS CodeBuild ビルドおよびテストアクションリファレンス](action-reference-CodeBuild.md)
+ [AWS CodePipeline アクションリファレンスを呼び出す](action-reference-PipelineInvoke.md)
+ [AWS CodeCommit ソースアクションリファレンス](action-reference-CodeCommit.md)
+ [AWS CodeDeploy デプロイアクションリファレンス](action-reference-CodeDeploy.md)
+ [CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)](action-reference-CodestarConnectionSource.md)
+ [コマンドアクションリファレンス](action-reference-Commands.md)
+ [AWS Device Farm テストアクションリファレンス](action-reference-DeviceFarm.md)
+ [Elastic Beanstalk のデプロイアクションリファレンス](action-reference-Beanstalk.md)
+ [Amazon Inspector `InspectorScan` 呼び出しアクションリファレンス](action-reference-InspectorScan.md)
+ [AWS Lambda アクションリファレンスを呼び出す](action-reference-Lambda.md)
+ [AWS OpsWorks デプロイアクションリファレンス](action-reference-OpsWorks.md)
+ [AWS Service Catalogデプロイアクションリファレンス](action-reference-ServiceCatalog.md)
+ [AWS Step Functions](action-reference-StepFunctions.md)

# Amazon EC2 アクションリファレンス
<a name="action-reference-EC2Deploy"></a>

Amazon EC2 `EC2` アクションを使用して、デプロイフリートにアプリケーションコードをデプロイします。デプロイフリートは、Amazon EC2 Linux インスタンスまたは Linux SSM マネージドノードで構成できます。インスタンスに SSM エージェントがインストールされている必要があります。

**注記**  
このアクションは Linux インスタンスタイプのみをサポートします。サポートされているフリートの最大サイズは 500 インスタンスです。

アクションは、指定された最大値に基づいてインスタンスの数を選択します。以前のインスタンスで失敗したインスタンスが最初に選択されます。以前に失敗したアクションなど、インスタンスが既に同じ入力アーティファクトのデプロイを受信している場合、アクションは特定のインスタンスでのデプロイをスキップします。

**注記**  
このアクションは V2 タイプのパイプラインでのみサポートされています。

**Topics**
+ [アクションタイプ](#action-reference-EC2Deploy-type)
+ [設定パラメータ](#action-reference-EC2Deploy-parameters)
+ [入力アーティファクト](#action-reference-EC2Deploy-input)
+ [出力アーティファクト](#action-reference-EC2Deploy-output)
+ [EC2 デプロイアクションのサービスロールポリシーのアクセス許可](#action-reference-EC2Deploy-permissions-action)
+ [仕様ファイルのリファレンスをデプロイする](#action-reference-EC2Deploy-spec-reference)
+ [アクションの宣言](#action-reference-EC2Deploy-example)
+ [デプロイ仕様を使用したアクション宣言の例](#action-reference-EC2Deploy-example-spec)
+ [関連情報](#action-reference-EC2Deploy-links)

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

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

**InstanceTagKey**  
必須: はい  
Amazon EC2 で作成したインスタンスのタグキー (`Name` など)。

**InstanceTagValue**  
必須: いいえ  
Amazon EC2 で作成したインスタンスのタグの値 (`my-instances` など)。  
この値を指定しない場合、**InstanceTagKey** を持つすべてのインスタンスがマッチします。

**InstanceType**  
必須: はい  
Amazon EC2 で作成されたインスタンスまたは SSM ノードのタイプ。有効な値は `EC2` および `SSM_MANAGED_NODE` です。  
すべてのインスタンスで SSM エージェントを作成、タグ付け、インストールしておく必要があります。  
インスタンスを作成する際は、既存の EC2 インスタンスロールを作成または使用します。`Access Denied` エラーを回避するには、インスタンスロールに S3 バケットアクセス許可を追加して、CodePipeline アーティファクトバケットにインスタンスアクセス許可を付与する必要があります。デフォルトのロールを作成するか、パイプラインのリージョンのアーティファクトバケットにスコープダウンされた `s3:GetObject` アクセス許可で既存のロールを更新します。

**TargetDirectory**  
必須: はい (スクリプトが指定されている場合)  
スクリプトを実行するために Amazon EC2 インスタンスで使用されるディレクトリ。

**DeploySpec**  
必須: はい (デプロイ仕様が指定されている場合)  
デプロイのインストールイベントとライフサイクルイベントを設定するために使用されるファイル。デプロイ仕様フィールドの説明と情報については、「[仕様ファイルのリファレンスをデプロイする](#action-reference-EC2Deploy-spec-reference)」を参照してください。指定されたデプロイ仕様ファイルを含むアクション設定を表示するには、「[デプロイ仕様を使用したアクション宣言の例](#action-reference-EC2Deploy-example-spec)」の例を参照してください。

**MaxBatch**  
必須: いいえ  
並列でデプロイできるインスタンスの最大数。

**MaxError**  
必須: いいえ  
デプロイ中に許可されるインスタンスエラーの最大数。

**TargetGroupNameList**  
必須: いいえ  
デプロイのターゲットグループ名のリスト。ターゲットグループは作成済みである必要があります。  
ターゲットグループは、特定のリクエストを処理するための一連のインスタンスを提供します。ターゲットグループが指定されている場合、インスタンスはデプロイ前にターゲットグループから削除され、デプロイ後にターゲットグループに追加されます。

**PreScript**  
必須: いいえ  
アクションデプロイフェーズの前に実行するスクリプト。

**PostScript**  
必須: はい  
アクションデプロイフェーズの後に実行されるスクリプト。

次の図は、**[アクションの設定を使用]** が選択されているアクションの **[編集]** ページの例を示しています。

![\[アクションの設定を使用して指定する EC2Deploy アクションを含む新しいパイプラインの [アクションを編集する] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/ec2deploy-action.png)


次の図は、**[DeploySpec ファイルを使用]** が選択されているアクションの **[編集]** ページの例を示しています。

![\[仕様ファイルを使用するための EC2Deploy アクションオプションを含む新しいパイプラインの [アクションを編集する] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/ec2deploy-action-spec.png)


## 入力アーティファクト
<a name="action-reference-EC2Deploy-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** デプロイ中にスクリプトアクションをサポートするために提供されたファイル。

## 出力アーティファクト
<a name="action-reference-EC2Deploy-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## EC2 デプロイアクションのサービスロールポリシーのアクセス許可
<a name="action-reference-EC2Deploy-permissions-action"></a>

CodePipeline がアクションを実行する際、CodePipeline サービスロールには、最小特権でのアクセスに適切にスコープダウンされた次のアクセス許可が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementWithAllResource",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "ssm:CancelCommand",
                "ssm:DescribeInstanceInformation",
                "ssm:ListCommandInvocations"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "StatementForLogs",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/aws/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForElasticloadbalancing",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DeregisterTargets",
                "elasticloadbalancing:RegisterTargets"
            ],
            "Resource": [
                "arn:aws:elasticloadbalancing:us-east-1:111122223333:targetgroup/[[targetGroupName]]/*"
            ]
        },
        {
            "Sid": "StatementForSsmOnTaggedInstances",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/{{tagKey}}": "{{tagValue}}"
                }
            }
        },
        {
            "Sid": "StatementForSsmApprovedDocuments",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1::document/AWS-RunPowerShellScript",
                "arn:aws:ssm:us-east-1::document/AWS-RunShellScript"
            ]
        }
    ]
}
```

------

### CloudWatch ログのパイプラインのロググループ
<a name="action-reference-EC2Deploy-logs"></a>

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

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

ログ記録のための以下のアクセス許可は、サービスロールの上記の更新に含まれています。
+ logs:CreateLogGroup
+ logs:CreateLogStream
+ logs:PutLogEvents

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

### CloudWatch ログのサービスロールポリシーのアクセス許可
<a name="w2aac56c13c21c11"></a>

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

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

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

## 仕様ファイルのリファレンスをデプロイする
<a name="action-reference-EC2Deploy-spec-reference"></a>

CodePipeline がアクションを実行する際に、インスタンスへのデプロイを設定する仕様ファイルを指定できます。デプロイ仕様ファイルは、デプロイライフサイクルイベントに応じてインストールする内容と実行するライフサイクルイベントフックを指定します。デプロイ仕様ファイルは常に YAML 形式です。デプロイ仕様ファイルは、以下の目的で使用されます。
+ アプリケーションリビジョンのソースファイルを、インスタンスの宛先にマッピングします。
+ デプロイされたファイルのカスタムアクセス権限を指定する。
+ デプロイプロセスのさまざまなフェーズにおいて、各インスタンスで実行するスクリプトを指定する。

デプロイ仕様ファイルは、AppSpec ファイルを使用して CodeDeploy でサポートされている特定のデプロイ設定パラメータをサポートします。既存の AppSpec ファイルを直接使用でき、サポートされていないパラメータは無視されます。CodeDeploy の AppSpec ファイルの詳細については、「*[CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html) ユーザーガイド*」のアプリケーション仕様ファイルリファレンスを参照してください。

ファイルデプロイパラメータは次のように指定されます。
+ `files` - デプロイ仕様ファイルは、デプロイファイルの `source:` と `destination:` を指定します。
+ `scripts` - デプロイのスクリプト化されたイベント。`BeforeDeploy` と `AfterDeploy` の 2 つのイベントがサポートされています。
+ `hooks` - イベントのライフサイクルフック。サポートされるフックは、`ApplicationStop`、`BeforeInstall`、`AfterInstall`、`ApplicationStart`、および `ValidateService` です。
**注記**  
フックパラメータは CodeDeploy との AppSpec の互換性のために使用でき、バージョン 0.0 (AppSpec 形式) でのみ使用できます。この形式では、CodePipeline はイベントのベストエフォートマッピングを実行します。

仕様ファイルでは正しい YAML スペースを使用する必要があります。デプロイ仕様ファイル内の場所とスペース数が正しくない場合、エラーが発生します。間隔の詳細については、[YAML](http://www.yaml.org/) の仕様を参照してください。

デプロイ仕様ファイルの例を以下に示します。

```
version: 0.1
files:
  - source: /index.html
    destination: /var/www/html/
scripts:
  BeforeDeploy:
    - location: scripts/install_dependencies
      timeout: 300
      runas: myuser
  AfterDeploy:
    - location: scripts/start_server
      timeout: 300
      runas: myuser
```

指定されたデプロイ仕様ファイルを含むアクション設定を表示するには、「[デプロイ仕様を使用したアクション宣言の例](#action-reference-EC2Deploy-example-spec)」の例を参照してください。

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

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
    PostScript: "test/script.sh",
    TargetDirectory: "/home/ec2-user/deploy"
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2",
                "PostScript": "test/script.sh",
                "TargetDirectory": "/home/ec2-user/deploy"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

## デプロイ仕様を使用したアクション宣言の例
<a name="action-reference-EC2Deploy-example-spec"></a>

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    DeploySpec: "deployspec.yaml"
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "DeploySpec": "deployspec.yaml",
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+  [チュートリアル: CodePipeline を使用して Amazon EC2 インスタンスにデプロイする](tutorials-ec2-deploy.md) – このチュートリアルでは、スクリプトファイルをデプロイする EC2 インスタンスの作成と、EC2 アクションを使用したパイプラインの作成について説明します。
+ [EC2 デプロイアクションがエラーメッセージ `No such file` で失敗する](troubleshooting.md#troubleshooting-ec2-deploy) – このトピックでは、EC2 アクションでファイルが見つからないエラーのトラブルシューティングについて説明します。

# Amazon ECR ソースアクションリファレンス
<a name="action-reference-ECR"></a>

新規イメージが Amazon ECR リポジトリにプッシュされた場合、パイプラインをトリガーします。このアクションは、Amazon ECR にプッシュされたイメージの URI を参照するイメージ定義ファイルを提供します。このソースアクションは、他のソースアーティファクトのソース場所を許可するために、CodeCommit などの他のソースアクションと組み合わせて使用されることがよくあります。詳細については、「[チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md)」を参照してください。

コンソールを使用してパイプラインを作成または編集すると、CodePipeline はリポジトリで変更が生じた場合にパイプラインを開始する EventBridge ルールを作成します。

**注記**  
Amazon ECR、Amazon S3、または CodeCommit ソースの場合、入力変換エントリを使用してソースオーバーライドを作成し、パイプラインイベントの EventBridge で `revisionValue` を使用することもできます。ここで、`revisionValue` はオブジェクトキー、コミット、またはイメージ ID のソースイベント変数から派生します。詳細については、[Amazon ECR ソースアクションと EventBridge リソース](create-cwe-ecr-source.md)、[イベントに対して有効にしたソースを使用して Amazon S3 ソースアクションに接続する](create-S3-source-events.md)、または [CodeCommit ソースアクションと EventBridge](triggering.md) の手順に含まれる入力変換エントリのオプション手順を参照してください。

Amazon ECR アクションを介してパイプラインを接続する前に、Amazon ECR リポジトリを作成し、イメージをプッシュしておく必要があります。

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

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

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

**RepositoryName**  
必須: はい  
イメージがプッシュされた Amazon ECR リポジトリの名前。

**ImageTag**  
必須: いいえ  
イメージに使用するタグ。  
`ImageTag` の値を指定しない場合、デフォルト値は `latest` になります。

## 入力アーティファクト
<a name="action-reference-ECR-input"></a>
+ **アーティファクトの数:** `0`
+ **説明:** 入力アーティファクトは、このアクションタイプには適用されません。

## 出力アーティファクト
<a name="action-reference-ECR-output"></a>
+ **アーティファクトの数:** `1` 
+ **説明:** このアクションは、パイプライン実行をトリガーしたイメージの URI を含む `imageDetail.json` ファイルがあるアーティファクトを生成します。`imageDetail.json` ファイルの詳細については、「[Amazon ECS Blue/Green デプロイアクション用の imageDetail.json ファイル](file-reference.md#file-reference-ecs-bluegreen)」を参照してください。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**RegistryId**  
リポジトリを含むレジストリに関連付けられた AWS アカウント ID。

**RepositoryName**  
イメージがプッシュされた Amazon ECR リポジトリの名前。

**ImageTag**  
イメージに使用するタグ。  
ソースリビジョンがオーバーライドされている場合、`ImageTag` 出力変数は出力されません

**ImageDigest**  
イメージマニフェストの `sha256` ダイジェスト。

**ImageURI**  
イメージの URL。

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

Amazon ECR がサポートされるように、以下をポリシーステートメントに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "ecr:DescribeImages"
    ],
    "Resource": "resource_ARN"
},
```

このアクションの詳細については、「[Amazon ECR ソースアクションリファレンス](#action-reference-ECR)」を参照してください。

## アクションの宣言 (Amazon ECR の例)
<a name="action-reference-ECR-example"></a>

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

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: AWS
      Category: Source
      Provider: ECR
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      ImageTag: latest
      RepositoryName: my-image-repo

    Name: ImageSource
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "AWS",
                "Category": "Source",
                "Provider": "ECR"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "ImageTag": "latest",
                "RepositoryName": "my-image-repo"
            },
            "Name": "ImageSource"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md) - このチュートリアルでは、サンプルアプリ仕様ファイル、サンプル CodeDeploy アプリケーションおよび、デプロイグループを提供し、CodeCommit とAmazon ECS インスタンスにデプロイする Amazon ECR ソースを使用してパイプラインを作成します。

# `ECRBuildAndPublish` ビルドアクションリファレンス
<a name="action-reference-ECRBuildAndPublish"></a>

このビルドアクションにより、ソースで変更が発生したときに新しいイメージの構築とプッシュを自動化できます。このアクションは、指定された Docker ファイルの場所に基づいて構築され、イメージをプッシュします。このビルドアクションは、Amazon ECR ソースリポジトリで変更が発生したときにパイプラインをトリガーする CodePipeline の Amazon ECR ソースアクションとは異なります。このアクションの詳細については、「[Amazon ECR ソースアクションリファレンス](action-reference-ECR.md)」を参照してください。

これは、パイプラインをトリガーするソースアクションではありません。このアクションはイメージをビルドし、Amazon ECR イメージリポジトリにプッシュします。

アクションをパイプラインに追加する前に、Amazon ECR リポジトリを作成し、GitHub などのソースコードリポジトリに Dockerfile を追加しておく必要があります。

**重要**  
このアクションでは、CodePipeline マネージド CodeBuild コンピューティングを使用して、ビルド環境でコマンドを実行します。コマンドアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

**注記**  
このアクションは V2 タイプのパイプラインでのみ使用できます。

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

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

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

**ECRRepositoryName**  
必須: はい  
イメージがプッシュされた Amazon ECR リポジトリの名前。

**DockerFilePath**  
必須: いいえ  
イメージのビルドに使用される Docker ファイルの場所。ルートレベルでない場合は、必要に応じて代替の docker ファイルの場所を指定できます。  
`DockerFilePath` の値を指定しない場合、値はデフォルトでソースリポジトリのルートレベルになります。

**ImageTags**  
必須: いいえ  
イメージに使用するタグ。複数のタグを文字列のカンマ区切りリストとして入力できます。  
`ImageTags` の値を指定しない場合、デフォルト値は `latest` になります。

**RegistryType**  
必須: いいえ  
リポジトリがパブリックかプライベートかを指定します。有効な値は `private | public` です。  
`RegistryType` の値を指定しない場合、デフォルト値は `private` になります。

## 入力アーティファクト
<a name="action-reference-ECRBuildAndPublish-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** イメージのビルドに必要な Dockerfile を含むソースアクションによって生成されるアーティファクト。

## 出力アーティファクト
<a name="action-reference-ECRBuildAndPublish-output"></a>
+ **アーティファクトの数:** `0` 

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**ECRImageDigestId **  
イメージマニフェストの `sha256` ダイジェスト。

**ECRRepositoryName **  
イメージがプッシュされた Amazon ECR リポジトリの名前。

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

`ECRBuildAndPublish` アクションをサポートするには、以下をポリシーステートメントに追加します。

```
{
    "Statement": [
         {
            "Sid": "ECRRepositoryAllResourcePolicy",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeRepositories",
                "ecr:GetAuthorizationToken",
                "ecr-public:DescribeRepositories",
                "ecr-public:GetAuthorizationToken"
            ],
        "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:InitiateLayerUpload",
                "ecr:UploadLayerPart",
                "ecr:CompleteLayerUpload",
                "ecr:PutImage",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "PrivateECR_Resource_ARN"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr-public:GetAuthorizationToken",
                "ecr-public:DescribeRepositories",
                "ecr-public:InitiateLayerUpload",
                "ecr-public:UploadLayerPart",
                "ecr-public:CompleteLayerUpload",
                "ecr-public:PutImage",
                "ecr-public:BatchCheckLayerAvailability",
                "sts:GetServiceBearerToken"
            ],
            "Resource": "PublicECR_Resource_ARN"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sts:GetServiceBearerToken"
            ],
            "Resource": "*"
        }
    ]
}
```

さらに、`Commands` アクションにまだ追加されていない場合は、CloudWatch ログを表示するために、サービスロールに次のアクセス許可を追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream", 
        "logs:PutLogEvents"
    ],
    "Resource": "resource_ARN"
},
```

**注記**  
サービスロールポリシーステートメントでリソースベースのアクセス許可を使用して、アクセス許可の範囲をパイプラインリソースレベルに絞り込みます。

このアクションの詳細については、「[`ECRBuildAndPublish` ビルドアクションリファレンス](#action-reference-ECRBuildAndPublish)」を参照してください。

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

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

```
name: ECRBuild
actionTypeId:
  category: Build
  owner: AWS
  provider: ECRBuildAndPublish
  version: '1'
runOrder: 1
configuration:
  ECRRepositoryName: actions/my-imagerepo
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: BuildVariables
```

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

```
{
    "name": "ECRBuild",
    "actionTypeId": {
        "category": "Build",
        "owner": "AWS",
        "provider": "ECRBuildAndPublish",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "ECRRepositoryName": "actions/my-imagerepo"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "BuildVariables"
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: CodePipeline (V2 タイプ) を使用して Docker イメージを構築し Amazon ECR にプッシュする](tutorials-ecr-build-publish.md) – このチュートリアルでは、サンプル Dockerfile と、ソースリポジトリへの変更時にイメージを ECR にプッシュし、Amazon ECS にデプロイするパイプラインを作成する手順について説明します。

# Amazon ECS および CodeDeploy ブルー/グリーンデプロイアクションリファレンス
<a name="action-reference-ECSbluegreen"></a>

Blue/Green デプロイを使用してコンテナアプリケーションをデプロイ AWS CodePipeline するパイプラインを で設定できます。Blue/Green デプロイでは、古いバージョンと一緒に新しいバージョンのアプリケーションを起動し、トラフィックを再ルーティングする前に新しいバージョンをテストできます。また、デプロイプロセスをモニタリングし、問題がある場合は迅速にロールバックすることもできます。

完成したパイプラインは、イメージまたはタスク定義ファイルの変更を検出し、CodeDeploy を使用して Amazon ECS クラスターとロードバランサーにトラフィックをルーティングしてデプロイします。CodeDeploy は、特別なポートを介して新しいタスクをターゲットにできる新しいリスナーをロードバランサーに作成します。また、Amazon ECS タスク定義が保存されている CodeCommit リポジトリなどのソース場所を使用するようにパイプラインを設定することもできます。

パイプラインを作成する前に、Amazon ECS リソース、CodeDeploy リソース、ロードバランサーとターゲットグループをすでに作成しておく必要があります。イメージリポジトリにイメージにタグを付けて保存し、タスク定義と AppSpec ファイルをファイルリポジトリにアップロードしておく必要があります。

**注記**  
このトピックでは、CodePipeline の Amazon ECS から CodeDeploy Blue/Green デプロイアクションについて説明します。CodePipeline での Amazon ECS 標準デプロイアクションの詳細については、「[Amazon Elastic Container Service デプロイアクションリファレンス](action-reference-ECS.md)」を参照してください。

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

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

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

**ApplicationName**  
必須: はい  
CodeDeploy 内のアプリケーションの名前。パイプラインを作成する前に、CodeDeploy でアプリケーションをすでに作成しておく必要があります。

**DeploymentGroupName**  
必須: はい  
CodeDeploy アプリケーション用に作成した Amazon ECS タスクセットに指定されているデプロイグループ。パイプラインを作成する前に、CodeDeploy でデプロイグループをすでに作成しておく必要があります。

**TaskDefinitionTemplateArtifact**  
必須: はい  
デプロイアクションにタスク定義ファイルを提供する入力アーティファクトの名前。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は `SourceArtifact` になります。

**AppSpectemplateArtifact**  
必須: はい  
デプロイアクションに AppSpec ファイルを提供する入力アーティファクトの名前。この値は、パイプラインの実行時に更新されます。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は `SourceArtifact` になります。AppSpec ファイル内の `TaskDefinition` では、[こちら](tutorials-ecs-ecr-codedeploy.md#tutorials-ecs-ecr-codedeploy-taskdefinition)に示されているように `<TASK_DEFINITION>` プレースホルダーテキストを使用できます。

**AppSpecTemplatePath**  
必須: いいえ  
パイプラインの CodeCommit リポジトリなど、パイプラインのソースファイルのロケーションに保存されている AppSpec ファイルのファイル名。デフォルトのファイル名は `appspec.yaml` です。AppSpec ファイルが同じ名前で、ファイルリポジトリのルートレベルに保存されている場合は、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。

**TaskDefinitionTemplatePath**  
必須: いいえ  
パイプラインの CodeCommit リポジトリなど、パイプラインのファイルソースのロケーションに保存されているタスク定義のファイル名。デフォルトのファイル名は `taskdef.json` です。タスク定義ファイルが同じ名前で、ファイルリポジトリのルートレベルに保存されている場合は、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。

**イメージ<Number>ArtifactName**  
必須: いいえ  
デプロイアクションにイメージを提供する入力アーティファクトの名前。これは一般に、Amazon ECR ソースアクションからの出力など、イメージリポジトリの出力アーティファクトです。  
`<Number>` に指定できる値は 1 から 4 までです。

**イメージ<Number>ContainerName**  
必須: いいえ  
Amazon ECR ソースリポジトリなど、イメージリポジトリから使用可能なイメージの名前。  
`<Number>` に指定できる値は 1 から 4 までです。

## 入力アーティファクト
<a name="action-reference-ECSbluegreen-input"></a>
+ **アーティファクトの数:** `1 to 5`
+ **説明:** `CodeDeployToECS`アクションは、最初にソースファイルリポジトリ内のタスク定義ファイルと AppSpec ファイルを検索し、次にイメージリポジトリ内のイメージを検索し、タスク定義の新しいリビジョンを動的に生成し、最後に AppSpec コマンドを実行してタスクセットとコンテナをクラスターにデプロイします。

  `CodeDeployToECS` アクションは、イメージ URI をイメージにマップする `imageDetail.json` ファイルを検索します。Amazon ECR イメージリポジトリへの変更をコミットすると、ECR ソースアクションのパイプラインはそのコミット用に `imageDetail.json` ファイルを作成します。アクションが自動化されていないパイプラインの場合、手動で `imageDetail.json` ファイルを追加することもできます。`imageDetail.json` ファイルの詳細については、「[Amazon ECS Blue/Green デプロイアクション用の imageDetail.json ファイル](file-reference.md#file-reference-ecs-bluegreen)」を参照してください。

  `CodeDeployToECS` アクションは、タスク定義の新しいリビジョンを動的に生成します。このフェーズでは、このアクションがタスク定義ファイル内のプレースホルダーを、imageDetail.json ファイルから取得したイメージ URI に置き換えます。例えば、*IMAGE1\$1NAME* を Image1ContainerName パラメータとして設定する場合、タスク定義ファイルのイメージフィールドの値としてプレースホルダー *<IMAGE1\$1NAME>* を指定する必要があります。この場合、CodeDeployToECS アクションはプレースホルダー *<IMAGE1\$1NAME>* を、Image1ArtifactName として指定したアーティファクト内の imageDetail.json から取得した実際のイメージ URI に置き換えます。

  タスク定義の更新では、CodeDeploy の `AppSpec.yaml` ファイルに `TaskDefinition` プロパティを含めます。

  ```
  TaskDefinition: <TASK_DEFINITION>
  ```

  このプロパティは、新しいタスク定義が作成された後、`CodeDeployToECS` アクションによって更新されます。

  `TaskDefinition` フィールドの値として、プレースホルダーテキストは <TASK\$1DEFINITION> である必要があります。`CodeDeployToECS` アクションは、このプレースホルダーを、動的に生成されたタスク定義の実際の ARN に置き換えます。

## 出力アーティファクト
<a name="action-reference-ECSbluegreen-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

`CodeDeployToECS` アクション (Blue/Green デプロイ) では、CodeDeploy から Amazon ECS への Blue/Green デプロイアクションを持つパイプラインを作成するために必要な最低限のアクセス許可は以下のとおりです。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCodeDeployDeploymentActions",
            "Action": [
                "codedeploy:CreateDeployment",
                "codedeploy:GetDeployment"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentgroup:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployApplicationActions",
            "Action": [
                "codedeploy:GetApplication",
                "codedeploy:GetApplicationRevision",
                "codedeploy:RegisterApplicationRevision"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:application:[[ApplicationName]]",
                "arn:aws:codedeploy:*:111122223333:application:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployDeploymentConfigAccess",
            "Action": [
                "codedeploy:GetDeploymentConfig"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentconfig:*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowECSRegisterTaskDefinition",
            "Action": [
                "ecs:RegisterTaskDefinition"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowPassRoleToECS",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/[[PassRoles]]"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ecs.amazonaws.com",
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Amazon ECS でタグ付け承認の使用をオプトインできます。オプトインする場合、`ecs:TagResource` というアクセス許可を付与する必要があります。オプトインの方法、必要になるアクセス許可、タグ付け承認の詳細については、Amazon Elastic Container Service 開発者ガイドの「[タグ付け承認のタイムライン](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources-timeline)」を参照してください。

また、タスクに IAMロールを使用するための `iam:PassRole` アクセス許可を追加する必要があります。詳細については、「[Amazon ECS タスク実行 IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)そして[タスクの IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)」を参照してください。

上の例に示すように、`ecs-tasks.amazonaws.com` を `iam:PassedToService` 条件下のサービスのリストへ追加することができます。

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

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: CodeDeployToECS
      Version: '1'
    RunOrder: 1
    Configuration:
      AppSpecTemplateArtifact: SourceArtifact
      ApplicationName: ecs-cd-application
      DeploymentGroupName: ecs-deployment-group
      Image1ArtifactName: MyImage
      Image1ContainerName: IMAGE1_NAME
      TaskDefinitionTemplatePath: taskdef.json
      AppSpecTemplatePath: appspec.yaml
      TaskDefinitionTemplateArtifact: SourceArtifact
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
      - Name: MyImage
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "CodeDeployToECS",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "AppSpecTemplateArtifact": "SourceArtifact",
                "ApplicationName": "ecs-cd-application",
                "DeploymentGroupName": "ecs-deployment-group",
                "Image1ArtifactName": "MyImage",
                "Image1ContainerName": "IMAGE1_NAME",
                "TaskDefinitionTemplatePath": "taskdef.json",
                "AppSpecTemplatePath": "appspec.yaml",
                "TaskDefinitionTemplateArtifact": "SourceArtifact"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                },
                {
                    "Name": "MyImage"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md) - このチュートリアルでは、Blue/Green のデプロイに必要な CodeDeploy リソースと Amazon ECS リソースの作成を順を追って説明します。このチュートリアルでは、Docker イメージを Amazon ECR にプッシュし、Docker イメージ名、コンテナ名、Amazon ECS サービス名、およびロードバランサーの設定を一覧表示する Amazon ECS タスク定義を作成する方法について説明します。このチュートリアルでは、デプロイ用の AppSpec ファイルとパイプラインの作成について順を追って説明します。
**注記**  
このトピックとチュートリアルでは、CodePipeline の CodeDeploy および ECS Blue/Green アクションについて説明します。CodePipeline の ECS 標準アクションの詳細については、「[チュートリアル: CodePipeline を使用した継続的デプロイ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html)」を参照してください。
+ *AWS CodeDeploy ユーザーガイド* – Blue/Green デプロイでロードバランサー、本番リスナー、ターゲットグループ、Amazon ECS アプリケーションを使用する方法については、[「チュートリアル: Amazon ECS サービスをデプロイする](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment.html)」を参照してください。*AWS CodeDeploy ユーザーガイド*のこのリファレンス情報は、Amazon ECS および を使用した Blue/Green デプロイの概要を示しています AWS CodeDeploy。
+ *Amazon Elastic Container Service デベロッパーガイド* - Docker イメージとコンテナ、ECS サービスとクラスター、および ECS タスクセットの操作については、「[Amazon ECS とは](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)」を参照してください。

# Amazon Elastic Container Service デプロイアクションリファレンス
<a name="action-reference-ECS"></a>

Amazon ECS アクションを使用して、Amazon ECS サービスとタスクセットをデプロイできます。Amazon ECS サービスは、Amazon ECS クラスターにデプロイされるコンテナアプリケーションです。Amazon ECS クラスターは、クラウドでコンテナアプリケーションをホストするインスタンスの集まりです。デプロイには、Amazon ECS で作成したタスク定義と、CodePipeline がイメージをデプロイするために使用するイメージ定義ファイルが必要です。

**重要**  
CodePipeline の Amazon ECS 標準デプロイアクションは、Amazon ECS サービスで使用されるリビジョンに基づいて、タスク定義の独自のリビジョンを作成します。Amazon ECS サービスを更新せずにタスク定義の新しいリビジョンを作成した場合、デプロイアクションはそれらのリビジョンを無視します。

パイプラインを作成する前に、Amazon ECS リソースを作成し、イメージリポジトリにイメージをタグ付けして保存し、BuildSpec ファイルをファイルリポジトリにアップロードしておく必要があります。

**注記**  
このリファレンスのトピックでは、CodePipeline の Amazon ECS 標準デプロイアクションについて説明します。CodePipeline における Amazon ECS から CodeDeploy の blue/green デプロイアクションのリファレンス情報については、[Amazon ECS および CodeDeploy ブルー/グリーンデプロイアクションリファレンス](action-reference-ECSbluegreen.md) を参照してください。

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

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

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

**ClusterName**  
必須: はい  
Amazon ECS 内の Amazon ECS クラスター。

**ServiceName**  
必須: はい  
Amazon ECS で作成した Amazon ECS サービス。

**FileName**  
必須: いいえ  
イメージ定義ファイルの名前は、サービスのコンテナ名およびイメージとタグを説明する JSON ファイルです。このファイルは ECS 標準デプロイに使用します。詳細については、「[入力アーティファクト](#action-reference-ECS-input)」および「[Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル](file-reference.md#pipelines-create-image-definitions)」を参照してください。

**デプロイメントタイムアウト**  
必須: いいえ  
Amazon ECS デプロイアクションのタイムアウト (分)。タイムアウトは、このアクションの最大デフォルトタイムアウトまで設定できます。例:   

```
"DeploymentTimeout": "15"
```

## 入力アーティファクト
<a name="action-reference-ECS-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** アクションはパイプラインのソースファイルリポジトリ内の `imagedefinitions.json` ファイル。イメージ定義ドキュメントは、Amazon ECS のコンテナ名およびイメージとタグについて説明する JSON ファイルです。CodePipeline はそのファイルを使用して、Amazon ECR などのイメージリポジトリからイメージを取得します。アクションが自動化されていないパイプラインの場合、手動で `imagedefinitions.json` ファイルを追加することもできます。`imagedefinitions.json` ファイルの詳細については、「[Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル](file-reference.md#pipelines-create-image-definitions)」を参照してください。

  アクションには、イメージリポジトリにすでにプッシュされている既存のイメージが必要です。イメージマッピングは `imagedefinitions.json` ファイルの場合、アクションで Amazon ECR ソースをソースアクションとしてパイプラインに含める必要はありません。

## 出力アーティファクト
<a name="action-reference-ECS-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## サービスロールのアクセス許可: Amazon ECS 標準アクション
<a name="edit-role-ecs"></a>

Amazon ECS では、Amazon ECS デプロイアクションを使用してパイプラインを作成するために必要な最小限のアクセス権限は次のとおりです。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TaskDefinitionPermissions",
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeTaskDefinition",
                "ecs:RegisterTaskDefinition"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "ECSServicePermissions",
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeServices",
                "ecs:UpdateService"
            ],
            "Resource": [
                "arn:aws:ecs:*:111122223333:service/[[clusters]]/*"
            ]
        },
        {
            "Sid": "ECSTagResource",
            "Effect": "Allow",
            "Action": [
                "ecs:TagResource"
            ],
            "Resource": [
                "arn:aws:ecs:*:111122223333:task-definition/[[taskDefinitions]]:*"
            ],
            "Condition": {
                "StringEquals": {
                    "ecs:CreateAction": [
                        "RegisterTaskDefinition"
                    ]
                }
            }
        },
        {
            "Sid": "IamPassRolePermissions",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/[[passRoles]]"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ecs.amazonaws.com",
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Amazon ECS でタグ付け承認の使用をオプトインできます。オプトインする場合、`ecs:TagResource` というアクセス許可を付与する必要があります。オプトインの方法、必要になるアクセス許可、タグ付け承認の詳細については、Amazon Elastic Container Service 開発者ガイドの「[タグ付け承認のタイムライン](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources-timeline)」を参照してください。

タスクに IAM ロールを使用するための `iam:PassRole` アクセス許可を追加する必要があります。詳細については、「[Amazon ECS タスク実行 IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)そして[タスクの IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)」を参照してください。以下のポリシーテキストを使用します。

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

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

```
Name: DeployECS
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: ECS
  Version: '1'
RunOrder: 2
Configuration:
  ClusterName: my-ecs-cluster
  ServiceName: sample-app-service
  FileName: imagedefinitions.json
  DeploymentTimeout: '15'
OutputArtifacts: []
InputArtifacts:
  - Name: my-image
```

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

```
{
    "Name": "DeployECS",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "ECS",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ClusterName": "my-ecs-cluster",
        "ServiceName": "sample-app-service",
        "FileName": "imagedefinitions.json",
        "DeploymentTimeout": "15"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "my-image"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ ECRBuildandPublish アクションを使用してイメージをプッシュし、ECS 標準アクションを使用して Amazon ECS にデプロイする方法を示すチュートリアルについては、「[チュートリアル: CodePipeline (V2 タイプ) を使用して Docker イメージを構築し Amazon ECR にプッシュする](tutorials-ecr-build-publish.md)」を参照してください。
+ [チュートリアル: CodePipeline を使用した継続的なデプロイ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html) — このチュートリアルでは、CodeCommit などのソースファイルリポジトリに格納する Dockerfile を作成する方法を説明します。次に、このチュートリアルでは、Docker イメージをビルドして Amazon ECR にプッシュし、imagedefinitions.json ファイルを作成する CodeBuild BuildSpec ファイルを組み込む方法を示します。最後に、Amazon ECS サービスとタスク定義を作成し、Amazon ECS デプロイアクションを使用してパイプラインを作成します。
**注記**  
このトピックとチュートリアルでは、CodePipeline の Amazon ECS 標準デプロイアクションについて説明します。CodePipeline における Amazon ECS から CodeDeploy の blue/green デプロイアクションの情報については、[チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md) を参照してください。
+ *Amazon Elastic Container Service デベロッパーガイド* - Docker イメージとコンテナ、Amazon ECS サービスとクラスター、および Amazon ECS タスクセットの操作については、「[Amazon ECS とは](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)」を参照してください。

# Amazon Elastic Kubernetes Service の `EKS` デプロイアクションリファレンス
<a name="action-reference-EKS"></a>

`EKSDeploy` アクションを使用して、Amazon EKS サービスをデプロイできます。デプロイには、CodePipeline がイメージのデプロイに使用する Kubernetes マニフェストファイルが必要です。

パイプラインを作成する前に、Amazon EKS リソースを作成し、イメージリポジトリにイメージを保存しておく必要があります。必要に応じて、クラスターの VPC 情報を指定できます。

**重要**  
このアクションでは、CodePipeline マネージド CodeBuild コンピューティングを使用して、ビルド環境でコマンドを実行します。コマンドアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

**注記**  
`EKS` デプロイアクションは V2 タイプのパイプラインでのみ使用できます。

EKS アクションは、パブリック EKS クラスターとプライベート EKS クラスターの両方をサポートします。プライベートクラスターは EKS で推奨されるタイプですが、どちらのタイプもサポートされています。

EKS アクションは、クロスアカウントアクションでサポートされています。クロスアカウント EKS アクションを追加するには、アクション宣言でターゲットアカウントから `actionRoleArn` を追加します。

**Topics**
+ [アクションタイプ](#action-reference-EKS-type)
+ [設定パラメータ](#action-reference-EKS-config)
+ [入力アーティファクト](#action-reference-EKS-input)
+ [出力アーティファクト](#action-reference-EKS-output)
+ [環境変数](#action-reference-EKS-env-variables)
+ [出力変数](#action-reference-EKS-output-vars)
+ [サービスロールのポリシーのアクセス許可](#action-reference-EKS-service-role)
+ [アクションの宣言](#action-reference-EKS-example)
+ [関連情報](#action-reference-EKS-links)

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

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

**ClusterName**  
必須: はい  
Amazon EKS の Amazon EKS クラスター。

**Helm のオプション**  
**Helm** が選択したデプロイツールである場合に使用できるオプションは次のとおりです。    
**HelmReleaseName **  
必須: はい (**Helm** タイプでのみ必須)  
デプロイのリリース名。  
**HelmChartLocation **  
必須: はい (**Helm** タイプでのみ必須)  
デプロイのチャートの場所。  
**HelmValuesFiles **  
必須: いいえ (**Helm **タイプでのみオプション)  
helm 値ファイルを上書きするには、helm チャートの場所にカンマ区切りの helm 値ファイルを入力します。

**Kubectl のオプション**  
**Kubectl** が選択したデプロイツールである場合に使用できるオプションは次のとおりです。    
**ManifestFiles**  
必須: はい (**Kubectl** タイプでのみ必須)  
マニフェストファイルの名前は、サービスのコンテナ名およびイメージとタグを説明するテキストファイルです。このファイルを使用して、イメージ URI とその他の情報をパラメータ化します。この目的のために環境変数を使用できます。  
 このファイルは、パイプラインのソースリポジトリに保存します。

**名前空間**  
必須: いいえ  
`kubectl` コマンドまたは `helm` コマンドで使用される kubernetes 名前空間。

**サブネット**  
必須: いいえ  
クラスターの VPC のサブネット。これらは、クラスターにアタッチされているのと同じ VPC の一部です。クラスターにまだアタッチされていないサブネットをここで指定することもできます。

**SecurityGroupIds**  
必須: いいえ  
クラスターの VPC のセキュリティグループ。これらは、クラスターにアタッチされているのと同じ VPC の一部です。クラスターにまだアタッチされていないセキュリティグループを指定して、ここで指定することもできます。

## 入力アーティファクト
<a name="action-reference-EKS-input"></a>
+ **アーティファクトの数:** `1`
+ **説明**: アクションはパイプラインのソースファイルリポジトリ内の Kubernetes マニフェストファイルまたは Helm チャートを参照します。S3 バケットに保存されている .tgz 形式の helm チャートを使用する場合は、S3 バケット/キーをソースアクションとして設定することで使用できます。例えば、指定されたオブジェクトキーは `my-chart-0.1.0.tgz` になります。

## 出力アーティファクト
<a name="action-reference-EKS-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## 環境変数
<a name="action-reference-EKS-env-variables"></a>

マニフェストファイルまたは helm チャート値ファイルのイメージリポジトリやイメージタグなどの変数を置き換えるために使用されます。

**Key**  
キーと値の環境変数ペアのキー (`$IMAGE_TAG` など)。

**値**  
キーと値のペアの値 (`v1.0` など)。値は、パイプラインアクションまたはパイプライン変数からの出力変数でパラメータ化できます。例えば、パイプラインには `${codepipeline.PipelineExecutionId}` で ECR イメージを作成する ECRBuildAndPublish アクションがあり、EKS アクションは `${codepipeline.PipelineExecutionId}` を環境変数の値として使用してこのイメージを使用できます。

## 出力変数
<a name="action-reference-EKS-output-vars"></a>

**EKSClusterName**  
Amazon EKS の Amazon EKS クラスター。

## サービスロールのポリシーのアクセス許可
<a name="action-reference-EKS-service-role"></a>

このアクションを実行するには、パイプラインのサービスロールポリシーで次のアクセス許可が使用可能である必要があります。
+ **EC2 アクション:** CodePipeline が実行される際は、アクション EC2 インスタンスのアクセス許可が必要です。これは、EKS クラスターの作成に必要な EC2 インスタンスロールとは異なります。

  既存のサービスロールを使用している場合、このアクションを使用するには、サービスロールに以下のアクセス許可を追加する必要があります。
  + ec2:CreateNetworkInterface
  + ec2:DescribeDhcpOptions
  + ec2:DescribeNetworkInterfaces
  + ec2:DeleteNetworkInterface
  + ec2:DescribeSubnets
  + ec2:DescribeSecurityGroups
  + ec2:DescribeVpcs
+ **EKS アクション:** CodePipeline がアクションを実行する際は、EKS クラスターアクセス許可が必要です。これは、EKS クラスターの作成に必要な IAM EKS クラスターロールとは異なることに注意してください。

  既存のサービスロールを使用している場合、このアクションを使用するには、サービスロールに以下のアクセス許可を追加する必要があります。
  + eks:DescribeCluster
+ **ログストリームアクション:** CodePipeline は、アクションを実行するときに、次のようにパイプライン名を使用してロググループを作成します。これにより、パイプライン名を使用してアクセス許可の範囲をリソースのログ記録に絞り込むことができます。

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

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

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

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:*:111122223333:cluster/YOUR_CLUSTER_NAME"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeRouteTables"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
            ]
        }
    ]
}
```

------

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

### サービスロールをクラスターのアクセスエントリとして追加する
<a name="action-reference-EKS-service-role-access"></a>

パイプラインのサービスロールポリシーでアクセス許可が利用可能になったら、CodePipeline サービスロールをクラスターのアクセスエントリとして追加して、クラスターのアクセス許可を設定します。

更新されたアクセス許可を持つアクションロールを使用することもできます。詳細については、「[ステップ 4: CodePipeline サービスロールのアクセスエントリを作成する](tutorials-eks-deploy.md#tutorials-eks-deploy-access-entry)」のチュートリアルの例を参照してください。

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

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

```
Name: DeployEKS
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: EKS
  Version: '1'
RunOrder: 2
Configuration:
  ClusterName: my-eks-cluster
  ManifestFiles: ManifestFile.json
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
```

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

```
{
    "Name": "DeployECS",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "EKS",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ClusterName": "my-eks-cluster",
        "ManifestFiles": "ManifestFile.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ EKS クラスターと Kubernetes マニフェストファイルを作成してアクションをパイプラインに追加する方法を示すチュートリアルについては、「[チュートリアル: CodePipeline を使用して Amazon EKS にデプロイする](tutorials-eks-deploy.md)」を参照してください。

# AWS Lambda デプロイアクションリファレンス
<a name="action-reference-LambdaDeploy"></a>

 AWS Lambda デプロイアクションを使用して、サーバーレスデプロイ用のアプリケーションコードのデプロイを管理します。関数をデプロイし、次のようにトラフィックデプロイのデプロイ戦略を使用できます。
+ トラフィックシフト用の Canary デプロイとリニアデプロイ
+ All at Once デプロイ

**注記**  
このアクションは V2 タイプのパイプラインでのみサポートされています。

**Topics**
+ [アクションタイプ](#action-reference-LambdaDeploy-type)
+ [設定パラメータ](#action-reference-LambdaDeploy-parameters)
+ [入力アーティファクト](#action-reference-LambdaDeploy-input)
+ [出力アーティファクト](#action-reference-LambdaDeploy-output)
+ [出力変数](#action-reference-LambdaDeploy-output-variables)
+ [Lambda デプロイアクションのサービスロールポリシーのアクセス許可](#action-reference-LambdaDeploy-permissions-action)
+ [アクションの宣言](#action-reference-LambdaDeploy-example)
+ [関連情報](#action-reference-LambdaDeploy-links)

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

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

**FunctionName**  
必須: はい  
Lambda で作成した関数の名前 (`MyLambdaFunction` など)。  
バージョンを作成しておく必要があります。

**FunctionAlias**  
必須: いいえ  
Lambda で作成した関数のエイリアス (`live` など)。この関数をデプロイします。エイリアスが存在し、アクション実行の開始時に、エイリアスにバージョンが 1 つある必要があります。(ロールバックターゲットバージョンになります)。  
指定しない場合、アクションはソースアーティファクトを `$LATEST` にデプロイし、新しいバージョンを作成します。このユースケースでは、デプロイ戦略とターゲットバージョンオプションは使用できません。

**PublishedTargetVersion**  
必須: いいえ  
FunctionAlias にデプロイする Lambda 関数のバージョン。パイプラインまたはアクションレベルの変数を使用できます (`#{variables.lambdaTargetVersion}` など)。アクション実行の開始時に、バージョンを公開する必要があります。  
入力アーティファクトが指定されていない場合は必須です。

**DeployStrategy**  
必須: いいえ (デフォルトは `AllAtOnce`)  
  
Lambda デプロイアクションが、Lambda 関数の元のバージョンから **FunctionAlias** の新しいバージョンにトラフィックを移行するために採用するレートを決定します。使用可能なデプロイ戦略は Canary またはリニアです。使用できる形式:  
+ `AllAtOnce` - 

  すべてのトラフィックは、更新された Lambda 関数に一度に移行します。

   指定されなかった場合、デフォルト値は `AllAtOnce` です。
+ `Canary10Percent5Minutes` - 最初の増分でトラフィックの 10 パーセントを移行します。残りの 90 パーセントは 5 分後にデプロイされます。

  パーセンテージと分の値の両方を変更できます。
+ `Linear10PercentEvery1Minute` - すべてのトラフィックが移行されるまで、毎分トラフィックの 10 パーセントを移行します。

  パーセンテージと分の値の両方を変更できます。
このフィールドについては、次の考慮事項に注意してください。  
+ 最大合計待機時間は 2 日です。
+ **FunctionAlias** が指定されている場合にのみ使用できます。


**アラーム**  
必須: いいえ  
Lambda デプロイ用に設定されたアラーム名のカンマ区切りリスト。最大 10 のアラームを追加できます。モニタリングされたアラームが ALARM 状態になると、アクションは失敗します。

次の画像は、アクションの [編集] ページの例を示しています。

![\[Lambda デプロイアクションを使用した新しいパイプラインの [アクションを編集する] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)


## 入力アーティファクト
<a name="action-reference-LambdaDeploy-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** デプロイ中にスクリプトアクションをサポートするために提供されたファイル。

## 出力アーティファクト
<a name="action-reference-LambdaDeploy-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**FunctionVersion**  
デプロイされた新しい Lambda 関数のバージョン。

## Lambda デプロイアクションのサービスロールポリシーのアクセス許可
<a name="action-reference-LambdaDeploy-permissions-action"></a>

CodePipeline がアクションを実行する際、CodePipeline サービスロールには、最小特権でのアクセスに適切にスコープダウンされた次のアクセス許可が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementForLambda",
            "Effect": "Allow",
            "Action": [
                "lambda:GetAlias",
                "lambda:GetFunctionConfiguration",
                "lambda:GetProvisionedConcurrencyConfig",
                "lambda:PublishVersion",
                "lambda:UpdateAlias",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}",
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*"
            ]
        },
        {
            "Sid": "StatementForCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms"
            ],
            "Resource": [
                "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}"
            ]
        },
        {
            "Sid": "StatementForLogs1",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}",
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForLogs2",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*"
            ]
        }
    ]
}
```

------

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

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

```
name: Deploy
actionTypeId:
  category: Deploy
  owner: AWS
  provider: Lambda
  version: '1'
runOrder: 1
configuration:
  DeployStrategy: Canary10Percent5Minutes
  FunctionAlias: aliasV1
  FunctionName: MyLambdaFunction
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: DeployVariables
```

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

```
{
    "name": "Deploy",
    "actionTypeId": {
        "category": "Deploy",
        "owner": "AWS",
        "provider": "Lambda",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "DeployStrategy": "Canary10Percent5Minutes",
        "FunctionAlias": "aliasV1",
        "FunctionName": "MyLambdaFunction"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "DeployVariables"
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+  [チュートリアル: CodePipeline を使用した Lambda 関数のデプロイ](tutorials-lambda-deploy.md) – このチュートリアルでは、サンプル Lambda 関数の作成について説明します。ここでは、エイリアスとバージョンを作成し、圧縮された Lambda 関数をソースの場所に追加し、パイプラインで Lambda アクションを実行します。

# Amazon S3 デプロイアクションリファレンス
<a name="action-reference-S3Deploy"></a>

Amazon S3 デプロイアクションを使用して、静的ウェブサイトのホスティングやアーカイブ用に Amazon S3 バケットにファイルをデプロイします。バケットにアップロードする前にデプロイファイルを抽出するかどうかを指定できます。

**注記**  
このリファレンストピックでは、CodePipeline の Amazon S3 デプロイアクションについて説明します。デプロイプラットフォームはホスティング用に設定された Amazon S3 バケットです。CodePipeline での Amazon S3 ソースアクションのリファレンス情報については、「[Amazon S3 ソースアクションリファレンス](action-reference-S3.md)」を参照してください。

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

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

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

**BucketName**  
必須: はい  
ファイルがデプロイされる Amazon S3 バケットの名前。

**Extract**  
必須: はい  
true を指定すると、アップロード前にファイルが抽出されるようになります。指定しないと、ホストされている静的ウェブサイトの場合など、アプリケーションファイルはアップロード時に圧縮されたままになります。false を指定した場合は、`ObjectKey` が必要になります。

**ObjectKey**  
条件付き。`Extract` = false の場合は必須  
S3 バケット内のオブジェクトを一意に識別する Amazon S3 オブジェクトキーの名前。

**KMSEncryptionKeyARN**  
必須: いいえ  
ホストバケットの AWS KMS 暗号化キーの ARN。`KMSEncryptionKeyARN` パラメータは、提供された AWS KMS keyを使用してアップロードされたアーティファクトを暗号化します。 KMS キーの場合、キー ID 、キー ARN 、またはエイリアス ARN を使用できます。  
エイリアスは、カスタマーマスターキー (KMS) を作成したアカウントでのみ認識されます。クロスアカウントアクションの場合、キー ID またはキー ARN のみを使用してキーを識別できます。クロスアカウントアクションには他のアカウント (AccountB) のロールを使用するため、キー ID を指定すると他のアカウント (AccountB) のキーが使用されます。
CodePipeline は、対称 KMS キーのみをサポートしています。非対称キーを使用して S3 bucket のデータを暗号化しないでください。

**CannedACL**  
必須: いいえ  
`CannedACL` パラメータは、指定された [既定 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) を、Amazon S3 にデプロイされたオブジェクトに適用します。このオブジェクトに適用された既存の ACL が上書きされます。

**CacheControl**  
必須: いいえ  
`CacheControl` パラメータは、バケットのオブジェクトのリクエストやレスポンスのキャッシュ動作を制御します。有効な値のリストについては、HTTP オペレーションの [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) ヘッダーフィールドを参照してください。`CacheControl` に複数の値を入力するには、各値の間にカンマを使用します。CLI の例に示すように、各カンマの後にスペースを追加できます (オプション)。  

```
"CacheControl": "public, max-age=0, no-transform"
```

## 入力アーティファクト
<a name="action-reference-S3Deploy-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** デプロイまたはアーカイブ用のファイルは、CodePipeline によってソースリポジトリから取得され、圧縮されて、アップロードされます。

## 出力アーティファクト
<a name="action-reference-S3Deploy-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## サービスロールのアクセス許可: S3 デプロイアクション
<a name="edit-role-s3deploy"></a>

S3 デプロイアクションをサポートするには、以下をポリシーステートメントに追加します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectVersionAcl",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::[[s3DeployBuckets]]",
        "arn:aws:s3:::[[s3DeployBuckets]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

S3 デプロイアクションのサポートでは、S3 オブジェクトにタグがある場合は、ポリシーステートメントに次のアクセス許可も追加する必要があります。

```
"s3:GetObjectTagging",
"s3:GetObjectVersionTagging",
"s3:PutObjectTagging"
```

## アクション設定の例
<a name="action-reference-S3Deploy-example"></a>

次に、アクションの設定例を示します。

### `Extract` を `false` に設定する場合のアクションの設定例
<a name="action-reference-S3Deploy-extractfalse"></a>

以下の例で示しているのは、`Extract` フィールドを `false` に設定してアクションを作成した場合のアクションのデフォルト設定です。

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'false'
      ObjectKey: MyWebsite
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "false",
                "ObjectKey": "MyWebsite"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

### `Extract` を `true` に設定する場合のアクションの設定例
<a name="action-reference-S3Deploy-extracttrue"></a>

以下の例で示しているのは、`Extract` フィールドを `true` に設定してアクションを作成した場合のアクションのデフォルト設定です。

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: website-bucket
      Extract: 'true'
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "S3",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "BucketName": "website-bucket",
                "Extract": "true"
                },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: Amazon S3 をデプロイプロバイダとして使用するパイプラインを作成する](tutorials-s3deploy.md) - このチュートリアルでは、S3 デプロイアクションを使用してパイプラインを作成する 2 つの例を紹介します。サンプルファイルをダウンロードし、CodeCommit リポジトリにアップロードします。その後、S3 バケットを作成し、ホスティング用に設定します。次に、CodePipeline コンソールを使用してパイプラインを作成し、Amazon S3 デプロイ設定を指定します。
+ [Amazon S3 ソースアクションリファレンス](action-reference-S3.md) - このアクションリファレンスでは、CodePipeline での Amazon S3 ソースアクションのリファレンス情報と例を提供しています。

# Amazon S3 ソースアクションリファレンス
<a name="action-reference-S3"></a>

新しいオブジェクトが、設定されたバケットとオブジェクトキーにアップロードされたときに、パイプラインをトリガーします。

**注記**  
このリファレンストピックでは、CodePipeline の Amazon S3 ソースアクションについて説明します。ソース場所は、バージョニング用に設定された Amazon S3 バケットです。CodePipeline での Amazon S3 デプロイアクションのリファレンス情報については、「[Amazon S3 デプロイアクションリファレンス](action-reference-S3Deploy.md)」を参照してください。

Amazon S3 バケットを作成して、アプリケーションファイルのソース場所として使用できます。

**注記**  
ソースバケットを作成するときは、バケットでバージョニングを有効にしてください。既存の Amazon S3 バケットを使用する場合は、「[バージョニングの使用](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html)」を参照して、既存のバケットでバージョニングを有効にします。

コンソールを使用してパイプラインを作成または編集する場合、CodePipeline は S3 ソースバケットで変更が発生したときにパイプラインを開始する EventBridge ルールを作成します。

**注記**  
Amazon ECR、Amazon S3、または CodeCommit ソースの場合、入力変換エントリを使用してソースオーバーライドを作成し、パイプラインイベントの EventBridge で `revisionValue` を使用することもできます。ここで、`revisionValue` はオブジェクトキー、コミット、またはイメージ ID のソースイベント変数から派生します。詳細については、[Amazon ECR ソースアクションと EventBridge リソース](create-cwe-ecr-source.md)、[イベントに対して有効にしたソースを使用して Amazon S3 ソースアクションに接続する](create-S3-source-events.md)、または [CodeCommit ソースアクションと EventBridge](triggering.md) の手順に含まれる入力変換エントリのオプション手順を参照してください。

Amazon S3 アクションを使用してパイプラインを接続する前に、Amazon S3 ソースバケットを作成し、ソースファイルを 1 つの ZIP ファイルとしてアップロードしておく必要があります。

**注記**  
Amazon S3 がパイプラインのソースプロバイダーである場合、ソースファイルを 1 つの .zip に圧縮し、その .zip をソースバケットにアップロードできます。解凍されたファイルを 1 つアップロードすることもできます。ただし、.zip ファイルを想定するダウンストリームアクションは失敗します。

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

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

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

**S3 バケット**  
必須: はい  
ソースの変更が検出される Amazon S3 バケットの名前。

**S3ObjectKey**  
必須: はい  
ソースの変更が検出される Amazon S3 オブジェクトキーの名前。

**AllowOverrideForS3ObjectKey**  
必須: いいえ  
`AllowOverrideForS3ObjectKey` は、`StartPipelineExecution` からのソースの上書きにより、ソースアクションに設定済みの `S3ObjectKey` を上書きできるかどうかを制御します。S3 オブジェクトキーを使用したソースの上書きの詳細については、「[ソースリビジョンオーバーライドでパイプラインを開始する](pipelines-trigger-source-overrides.md)」を参照してください。  
`AllowOverrideForS3ObjectKey` を省略すると、CodePipeline は、このパラメータを `false` に設定して、ソースアクションで S3 オブジェクトキーを上書きできないようにします。
このパラメータの有効な値:  
+ `true`: 設定すると、事前設定済みの S3 オブジェクトキーは、パイプラインの実行中にソースリビジョンの上書きによって上書きされる場合があります。
**注記**  
新しいパイプラインの実行開始時に、事前設定済みの S3 オブジェクトキーを上書きすることをすべての CodePipeline ユーザーに許可する場合は、`AllowOverrideForS3ObjectKey` を `true` に設定する必要があります。
+ `false`: 

  設定すると、CodePipeline は、ソースリビジョンの上書きを使用して S3 オブジェクトキーを上書きすることを許可しません。これは、このパラメータのデフォルト値でもあります。

**PollForSourceChanges**  
必須: いいえ  
`PollForSourceChanges` は、ソースの変更について CodePipeline が Amazon S3 ソースバケットをポーリングするかどうかを制御します。代わりに CloudWatch Events と CloudTrail を使用してソースの変更を検出することをお勧めします。CloudWatch Events の設定についての詳細は、「[S3 ソースと CloudTrail 証跡を使用してポーリングパイプラインを移行する (CLI)](update-change-detection.md#update-change-detection-cli-S3)」または「[S3 ソースと CloudTrail 証跡 (CloudFormation テンプレート) を使用してポーリングパイプラインを移行する](update-change-detection.md#update-change-detection-cfn-s3)」を参照してください。  
CloudWatch Events ルールを設定する場合、パイプラインの重複実行を避けるために `PollForSourceChanges` を `false` に設定する必要があります。
このパラメータの有効な値:  
+ `true`: 設定されている場合、CodePipeline はソースの変更についてソースの場所をポーリングします。
**注記**  
`PollForSourceChanges` を省略すると、 CodePipeline はソースの変更についてデフォルトでソースの場所をポーリングします。この動作は、`PollForSourceChanges` が含まれており、`true` に設定されている場合と同じです。
+ `false`: 設定されている場合、CodePipeline はソースの変更についてソースの場所をポーリングしません。CloudWatch Events ルールを設定してソース変更を検出する場合は、この設定を使用します。

## 入力アーティファクト
<a name="action-reference-S3-input"></a>
+ **アーティファクトの数:** `0`
+ **説明:** 入力アーティファクトは、このアクションタイプには適用されません。

## 出力アーティファクト
<a name="action-reference-S3-output"></a>
+ **アーティファクトの数:** `1` 
+ **説明:** パイプラインに接続するように設定されたソースバケットで使用可能なアーティファクトを提供します。バケットから生成されたアーティファクトは、Amazon S3 アクションの出力アーティファクトです。Amazon S3 オブジェクトメタデータ (ETag とバージョン ID) が、トリガーされたパイプライン実行のソースリビジョンとして CodePipeline で表示されます。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

CodePipeline における変数の詳細については、[変数リファレンス](reference-variables.md) を参照してください。

**BucketName**  
パイプラインをトリガーしたソース変更に関連する Amazon S3 バケットの名前。

**ETag**  
パイプラインをトリガーしたソース変更に関連するオブジェクトのエンティティタグ。ETag は、オブジェクトの MD5 ハッシュです。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。

**ObjectKey**  
パイプラインをトリガーしたソース変更に関連する Amazon S3 オブジェクトキーの名前。

**VersionId**  
パイプラインをトリガーしたソース変更に関連するオブジェクトのバージョンのバージョン ID。

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

S3 ソースアクションをサポートするには、以下をポリシーステートメントに追加します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:GetObjectTagging",
        "s3:GetObjectVersionTagging"
      ],
      "Resource": [
        "arn:aws:s3:::[[S3Bucket]]",
        "arn:aws:s3:::[[S3Bucket]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

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

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

```
Name: Source
Actions:
  - RunOrder: 1
    OutputArtifacts:
      - Name: SourceArtifact
    ActionTypeId:
      Provider: S3
      Owner: AWS
      Version: '1'
      Category: Source
    Region: us-west-2
    Name: Source
    Configuration:
      S3Bucket: amzn-s3-demo-source-bucket
      S3ObjectKey: my-application.zip
      PollForSourceChanges: 'false'
    InputArtifacts: []
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "RunOrder": 1,
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "ActionTypeId": {
                "Provider": "S3",
                "Owner": "AWS",
                "Version": "1",
                "Category": "Source"
            },
            "Region": "us-west-2",
            "Name": "Source",
            "Configuration": {
                "S3Bucket": "amzn-s3-demo-source-bucket",
                "S3ObjectKey": "my-application.zip",
                "PollForSourceChanges": "false"
            },
            "InputArtifacts": []
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: シンプルなパイプラインを作成する (S3 バケット)](tutorials-simple-s3.md) - このチュートリアルでは、サンプルアプリケーション仕様ファイル、サンプル CodeDeploy アプリケーションおよびデプロイグループを提供します。このチュートリアルを参照して、Amazon EC 2 インスタンスにデプロイする Amazon S3 ソースを持つパイプラインを作成します。

# AWS AppConfig デプロイアクションリファレンス
<a name="action-reference-AppConfig"></a>

AWS AppConfig は の一機能です AWS Systems Manager。 AppConfig は、あらゆる規模のアプリケーションへの制御されたデプロイをサポートし、検証チェックとモニタリングの機能が組み込まれています。AppConfig は、Amazon EC2 インスタンス、コンテナ AWS Lambda、モバイルアプリケーション、または IoT デバイスでホストされているアプリケーションで使用できます。

`AppConfig` デプロイアクションは、パイプラインソースの場所に保存されている設定を、指定された AppConfig *アプリケーション*、*環境*、および*設定*プロファイルにデプロイする AWS CodePipeline アクションです。AppConfig *デプロイ戦略* で定義されている環境設定を使用します。

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

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

**アプリケーション**  
必須: はい  
設定とデプロイの詳細を含む AWS AppConfig アプリケーションの ID。

**環境**  
必須: はい  
設定がデプロイされている AWS AppConfig 環境の ID。

**設定プロファイル**  
必須: はい  
デプロイする AWS AppConfig 設定プロファイルの ID。

**Artifact 設定パスを入力**  
必須: はい  
デプロイする入力アーティファクト内の構成データのファイルパス。

**デプロイメントストラテジー**  
必須: いいえ  
デプロイに使用する AWS AppConfig デプロイ戦略。

## 入力アーティファクト
<a name="action-reference-AppConfig-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:**デプロイアクションの入力アーティファクト。

## 出力アーティファクト
<a name="action-reference-AppConfig-output"></a>

該当なし。

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

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、リソースレベルに適切にスコープダウンされた次のアクセス許可が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "appconfig:StartDeployment",
                "appconfig:StopDeployment",
                "appconfig:GetDeployment"
            ],
            "Resource": [
                "arn:aws:appconfig:*:111122223333:application/[[Application]]",
                "arn:aws:appconfig:*:111122223333:application/[[Application]]/*",
                "arn:aws:appconfig:*:111122223333:deploymentstrategy/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## アクション設定の例
<a name="action-reference-AppConfig-example"></a>

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

```
name: Deploy
actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: AppConfig
      version: '1'
    runOrder: 1
    configuration:
      Application: 2s2qv57
      ConfigurationProfile: PvjrpU
      DeploymentStrategy: frqt7ir
      Environment: 9tm27yd
      InputArtifactConfigurationPath: /
    outputArtifacts: []
    inputArtifacts:
      - name: SourceArtifact
    region: us-west-2
    namespace: DeployVariables
```

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

```
{
    "name": "Deploy",
    "actions": [
        {
            "name": "Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "AppConfig",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "Application": "2s2qv57",
                "ConfigurationProfile": "PvjrpU",
                "DeploymentStrategy": "frqt7ir",
                "Environment": "9tm27yd",
                "InputArtifactConfigurationPath": "/"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-west-2",
            "namespace": "DeployVariables"
        }
    ]
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS AppConfig](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html) – AWS AppConfig デプロイの詳細については、*AWS Systems Manager 「 ユーザーガイド*」を参照してください。
+ [チュートリアル: AWS AppConfig をデプロイプロバイダーとして使用するパイプラインを作成する](tutorials-AppConfig.md) – このチュートリアルでは、シンプルなデプロイ設定ファイルと AppConfig リソースの設定を開始し、コンソールを使用して AWS AppConfig デプロイアクションでパイプラインを作成する方法を示します。

# CloudFormation デプロイアクションリファレンス
<a name="action-reference-CloudFormation"></a>

 CloudFormation スタックに対して オペレーションを実行します。スタックは、単一のユニットとして管理できる AWS リソースのコレクションです。スタック内のすべてのリソースは、スタックの CloudFormation テンプレートで定義されます。変更セットにより、元のスタックを変更せずに表示できる比較が作成されます。スタックと変更セットで実行できる CloudFormation アクションのタイプについては、 `ActionMode`パラメータを参照してください。

スタックオペレーションが失敗した CloudFormation アクションのエラーメッセージを作成するには、CodePipeline は API を CloudFormation `DescribeStackEvents`呼び出します。アクション IAM ロールにその API にアクセスするアクセス許可がある場合、最初に失敗したリソースの詳細が CodePipeline エラーメッセージに含まれます。そうでなく、ロールポリシーに適切なアクセス許可がない場合、CodePipeline は API へのアクセスを無視し、代わりに一般的なエラーメッセージを表示します。そのためには、パイプラインのサービスロールまたは他の IAM ロールに `cloudformation:DescribeStackEvents` アクセス許可を追加する必要があります。

リソースの詳細がパイプラインのエラーメッセージに表示されないようにするには、`cloudformation:DescribeStackEvents` アクセス許可を削除することによって、アクション IAM ロールに対するこのアクセス許可を取り消すことができます。

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

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

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

**ActionMode**  
必須: はい  
`ActionMode` は、スタックまたは変更セットで CloudFormation 実行されるアクションの名前です。以下のアクティベーションモードを使用できます。  
+ `CHANGE_SET_EXECUTE` は、指定された一連のリソース更新に基づくリソーススタックの変更セットを実行します。このアクションにより、 はスタックの変更 CloudFormation を開始します。
+ `CHANGE_SET_REPLACE` は、変更セットが存在しない場合、指定されたスタック名とテンプレートに基づいて変更セットを作成します。変更セットが存在する場合、 はそれ CloudFormation を削除し、新しい変更セットを作成します。
+ スタックが存在しない場合は、`CREATE_UPDATE` がスタックを作成します スタックが存在する場合、 はスタック CloudFormation を更新します。既存のスタックを更新するには、このアクションを使用します。`REPLACE_ON_FAILURE` とは異なり、スタックが存在し、失敗した状態の場合、CodePipeline はスタックを削除して置き換えることはありません。
+ `DELETE_ONLY` は、スタックを削除します。存在しないスタックを指定した場合は、アクションはスタックを削除せずに正常に終了します。
+ スタックが存在しない場合は、`REPLACE_ON_FAILURE` がスタックを作成します。スタックが存在し、障害状態にある場合、 はスタック CloudFormation を削除し、新しいスタックを作成します。スタックが失敗状態でない場合、 はスタック CloudFormation を更新します。

   CloudFormationに次のいずれかのステータスタイプが表示されている場合、スタックは失敗状態になります。
  + `ROLLBACK_FAILED`
  + `CREATE_FAILED`
  + `DELETE_FAILED`
  + `UPDATE_ROLLBACK_FAILED`

  失敗したスタックをリカバリーまたはトラブルシューティングせずに自動的に置き換えるには、このアクションを使用します。
**重要**  
`REPLACE_ON_FAILURE` は、スタックが削除される可能性があるため、テスト目的でのみ使用することをお勧めします。

**StackName**  
必須: はい  
`StackName` は、既存のスタックの名前、または作成するスタックの名前です。

**機能**  
必須: 条件による  
`Capabilities` を使用すると、テンプレートに一部のリソースを単独で作成および更新する機能があり、これらの機能はテンプレート内のリソースのタイプに基づいて決定されることが確認されます。  
このプロパティは、スタックテンプレートに IAM リソースがある場合、またはマクロを含むテンプレートから直接スタックを作成する場合に必要です。 CloudFormation アクションをこの方法で正常に動作させるには、次のいずれかの機能を使用してアクションが正常に動作することを明示的に承認する必要があります。  
+ `CAPABILITY_IAM` 
+ `CAPABILITY_NAMED_IAM` 
+ `CAPABILITY_AUTO_EXPAND` 
 機能間にカンマ（スペースなし）を使用して、複数の機能を指定できます。[アクションの宣言](#action-reference-CloudFormation-example) の例は、CAPABILITY\$1IAM プロパティと CAPABILITY\$1AUTO\$1EXPAND プロパティの両方を持つエントリを示しています。  
`Capabilities` の詳細については、[*AWS CloudFormation API リファレンス*]の [[UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)] のプロパティを参照してください。

**ChangeSetName**  
必須: 条件による  
`ChangeSetName` は、既存の変更セットの名前、または指定されたスタック用に作成する新しい変更セットの名前です。  
 このプロパティは、次のアクションモードに必要です。CHANGE\$1SET\$1REPLACE および CHANGE\$1SET\$1EXECUTE。他のすべてのアクションモードでは、このプロパティは無視されます。

**RoleArn**  
必須: 条件による  
`RoleArn` は、指定されたスタックのリソースを操作するときに CloudFormation が引き受ける IAM サービスロールの ARNです。`RoleArn` は、変更セットを実行するときには適用されません。変更セットの作成に CodePipeline を使用しない場合は、変更セットまたはスタックにロールが関連付けられていることを確認します。  
このロールは、アクション宣言 `RoleArn` で設定された、実行中のアクションのロールと同じアカウントである必要があります。
このプロパティは、以下のアクションモードでは必須です。  
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ DELETE\$1ONLY
+ CHANGE\$1SET\$1REPLACE
CloudFormation にはテンプレートへの S3-signed付き URL が付与されるため、アーティファクトバケットにアクセスするためのアクセス許可`RoleArn`は必要ありません。ただし、アクション `RoleArn` は、署名付き URL を生成するために、アーティファクト バケットへアクセスする許可を必要と [*します*]。

**TemplatePath**  
必須: 条件による  
`TemplatePath` は CloudFormation テンプレートファイルを表します。このアクションへの入力アーティファクトにファイルを含めます。ファイル名の形式は次のとおりです:   
`Artifactname::TemplateFileName`  
`Artifactname` は、CodePipeline に表示される入力アーティファクト名です。たとえば、アーティファクト名 `SourceArtifact` と `template-export.json` ファイル名を持つソースステージでは、次の例に示すような `TemplatePath` の名前が作成されます。  

```
"TemplatePath": "SourceArtifact::template-export.json"
```
このプロパティは、以下のアクションモードでは必須です。  
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ CHANGE\$1SET\$1REPLACE
他のすべてのアクションモードでは、このプロパティは無視されます。  
 CloudFormation テンプレート本文を含むテンプレートファイルの最小長は 1 バイト、最大長は 1 MB です。CodePipeline の CloudFormation デプロイアクションの場合、入力アーティファクトの最大サイズは常に 256 MB です。詳細については、[AWS の CodePipeline 中のクォータ](limits.md) および [[CloudFormation の制限](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)] を参照してください。

**OutputFileName**  
必須: いいえ  
`OutputFileName` を使用して、CodePipeline がこのアクションのパイプライン出力アーティファクトに追加する `CreateStackOutput.json` などの出力ファイル名を指定します。JSON ファイルには、 CloudFormation スタックの `Outputs`セクションの内容が含まれています。  
名前を指定しない場合、CodePipeline は出力ファイルやアーティファクトを生成しません。

**ParameterOverrides**  
必須: いいえ  
パラメータはスタックテンプレートで定義され、スタックの作成時または更新時にそれらの値を指定できます。JSON オブジェクトを使用して、テンプレートにパラメータ値を設定できます。（これらの値は、テンプレート設定ファイルに設定された値を上書きします。） パラメータオーバーライドの使用の詳細については、[設定プロパティ（JSON オブジェクト）](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w4363ab1c13c13b9)を参照してください。  
パラメータ値のほとんどは、テンプレート設定ファイルを使用して指定することをお勧めします。パラメータの上書きは、パイプラインが実行されるまで不明な値にのみ使用します。詳細については、[*AWS CloudFormation ユーザーガイド*] の [[CodePipeline パイプラインでのパラメータオーバーライド関数の使用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html)] を参照してください。  
すべてのパラメータ名がスタックテンプレートに存在する必要があります。

**TemplateConfiguration**  
必須: いいえ  
`TemplateConfiguration` はテンプレート構成ファイルです。このアクションへの入力アーティファクトにファイルを含めます。テンプレート設定ファイルには、テンプレートのパラメータ値およびスタックポリシーを含めることができます。テンプレート設定ファイル形式の詳細については、「[AWS CloudFormation アーティファクト](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)」を参照してください。  
テンプレート構成ファイル名は以下の形式に従います。  
`Artifactname::TemplateConfigurationFileName`  
`Artifactname` は、CodePipeline に表示される入力アーティファクト名です。たとえば、アーティファクト名 `SourceArtifact` と `test-configuration.json` ファイル名を持つソースステージでは、次の例に示すような `TemplateConfiguration` の名前が作成されます。  

```
"TemplateConfiguration": "SourceArtifact::test-configuration.json"
```

## 入力アーティファクト
<a name="action-reference-CloudFormation-input"></a>
+ **アーティファクトの数:** `0 to 10`
+ **説明:** 入力として、 CloudFormation アクションはオプションで以下の目的でアーティファクトを受け入れます。
  + 実行するスタックテンプレートファイルを提供するため。（`TemplatePath` パラメータを参照。）
  + 使用するテンプレート設定ファイルを提供するため。（`TemplateConfiguration` パラメータを参照。） テンプレート設定ファイル形式の詳細については、「[AWS CloudFormation アーティファクト](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)」を参照してください。
  +  CloudFormation スタックの一部としてデプロイする Lambda 関数のアーティファクトを提供します。

## 出力アーティファクト
<a name="action-reference-CloudFormation-output"></a>
+ **アーティファクトの数:** `0 to 1` 
+ **説明:** `OutputFileName` パラメータが指定された場合、このアクションによって生成される出力アーティファクトには、指定された名前の JSON ファイルが含まれます。JSON ファイルには、 CloudFormation スタックの「出力」セクションの内容が含まれています。

   CloudFormation アクション用に作成できる出力セクションの詳細については、[出力](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)を参照してください。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

 CloudFormation アクションの場合、変数はスタックテンプレートの `Outputs`セクションで指定された値から生成されます。CloudFormation アクションモードのうち、出力を生成するのは、スタックの作成、スタックの更新、変更セットの実行など、スタックの作成や更新を伴うアクションモードのみです。変数を生成するアクションモードは次のとおりです。
+ `CHANGE_SET_EXECUTE`
+ `CHANGE_SET_REPLACE`
+ `CREATE_UPDATE`
+ `REPLACE_ON_FAILURE`

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。CloudFormation 出力変数を使用するパイプラインを CloudFormation デプロイアクションで作成するためのチュートリアルについては、「[チュートリアル: AWS CloudFormation デプロイアクションの変数を使用するパイプラインを作成する](tutorials-cloudformation-action.md)」を参照してください。

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

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた次のアクセス許可が必要です。例えば、以下をポリシーステートメントに追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCFNStackAccess",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStackEvents",
                "cloudformation:GetTemplate",
                "cloudformation:DescribeChangeSet",
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:ExecuteChangeSet"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/[[cfnDeployStackNames]]/*"
            ]
        },
        {
            "Sid": "ValidateTemplate",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMPassRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/[[cfnExecutionRoles]]"
            ],
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

`cloudformation:DescribeStackEvents` アクセス許可はオプションであることに注意してください。これにより、 CloudFormation アクションはより詳細なエラーメッセージを表示できます。パイプラインのエラーメッセージにリソースの詳細を表示したくない場合は、このアクセス許可を IAM ロールから取り消すことができます。

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

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

```
Name: ExecuteChangeSet
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormation
  Version: '1'
RunOrder: 2
Configuration:
  ActionMode: CHANGE_SET_EXECUTE
  Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
  ChangeSetName: pipeline-changeset
  ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}'
  RoleArn: CloudFormation_Role_ARN
  StackName: my-project--lambda
  TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json'
  TemplatePath: 'my-project--BuildArtifact::template-export.yml'
OutputArtifacts: []
InputArtifacts:
  - Name: my-project-BuildArtifact
```

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

```
{
    "Name": "ExecuteChangeSet",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormation",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ActionMode": "CHANGE_SET_EXECUTE",
        "Capabilities": "CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
        "ChangeSetName": "pipeline-changeset",
        "ParameterOverrides": "{\"ProjectId\": \"my-project\",\"CodeDeployRole\": \"CodeDeploy_Role_ARN\"}",
        "RoleArn": "CloudFormation_Role_ARN",
        "StackName": "my-project--lambda",
        "TemplateConfiguration": "my-project--BuildArtifact::template-configuration.json",
        "TemplatePath": "my-project--BuildArtifact::template-export.yml"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
             "Name": "my-project-BuildArtifact"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [[設定プロパティ リファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html)] - [*AWS CloudFormation ユーザーガイド*] のリファレンスの章では、これらの CodePipeline パラメータの詳細な説明と例をご覧いただけます。
+ [AWS CloudFormation API リファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/) – *AWS CloudFormation API リファレンス*の [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html) パラメータは、 テンプレートの CloudFormation スタックパラメータを記述します。

# CloudFormation StackSets デプロイアクションリファレンス
<a name="action-reference-StackSets"></a>

CodePipeline は、CI/CD プロセスの一部として CloudFormation StackSets オペレーションを実行する機能を提供します。スタックセットを使用して、単一の CloudFormation テンプレートを使用して AWS リージョン間で AWS アカウントにスタックを作成します。各スタックに含まれるすべてのリソースは、スタックセットの CloudFormation テンプレートによって定義されます。スタックセットを作成する際、使用するテンプレートに加え、そのテンプレートで必要なパラメータや機能を指定します。

 CloudFormation StackSets の概念の詳細については、「 *AWS CloudFormation ユーザーガイド*」の[StackSets の概念](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html)」を参照してください。

パイプラインを CloudFormation StackSets と統合するには、一緒に使用する 2 つの異なるアクションタイプを使用します。
+ `CloudFormationStackSet` アクションはスタックセット、またはパイプラインのソース場所に保存されているテンプレートからのスタックインスタンスを作成または更新します。スタックセットが作成または更新されるたびに、指定したインスタンスへの変更のデプロイが開始されます。コンソールでは、パイプラインを作成または編集するとき、[** CloudFormation スタックセット **] アクションプロバイダーを選択します。
+ `CloudFormationStackInstances` アクションは、指定したインスタンスへの `CloudFormationStackSet` アクションからの変更のデプロイ、新しいスタックインスタンスの作成、および指定されたインスタンスに対するパラメータの上書きを定義します。コンソールでは、パイプラインを作成または編集するとき、[** CloudFormation スタックインスタンス **] アクションプロバイダーを選択します。

これらのアクションを使用して、ターゲット AWS アカウントまたはターゲット AWS の Organizations 組織単位 IDs にデプロイできます。

**注記**  
Organizations アカウントまたは組織単位 IDs AWS をターゲットにデプロイし、サービスマネージドアクセス許可モデルを使用するには、 AWS CloudFormation StackSets と AWS Organizations 間の信頼されたアクセスを有効にする必要があります。詳細については、[「Stacksets AWS CloudFormation による信頼されたアクセスの有効化](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-cloudformation.html#integrate-enable-ta-cloudformation)」を参照してください。

**Topics**
+ [Stack CloudFormation StackSets アクションの仕組み](#action-reference-StackSets-concepts)
+ [パイプラインで StackSets アクションを構成する方法](#action-reference-StackSets-bestpractices)
+ [`CloudFormationStackSet` アクション](#action-reference-StackSet)
+ [CloudFormationStackInstances アクション](#action-reference-StackInstances)
+ [サービスロールのアクセス許可: `CloudFormationStackSet` アクション](#edit-role-cfn-stackset)
+ [サービスロールのアクセス許可: `CloudFormationStackInstances` アクション](#edit-role-cfn-stackinstances)
+ [スタックセットオペレーションのアクセス許可モデル](#action-reference-StackSets-permissions)
+ [テンプレートパラメータのデータタイプ](#action-reference-StackSets-datatypes)
+ [関連情報](#action-reference-CloudFormation-links)

## Stack CloudFormation StackSets アクションの仕組み
<a name="action-reference-StackSets-concepts"></a>

`CloudFormationStackSet` アクションは、アクションが初めて実行されているかどうかに応じて、リソースを作成または更新します。

`CloudFormationStackSet` アクションはスタックセットを *作成* または *更新* して、指定されたインスタンスに変更をデプロイします。

**注記**  
このアクションを使用してスタックインスタンスの追加を含む更新を行う場合、新しいインスタンスが最初にデプロイされ、更新は最後に完了します。新しいインスタンスは最初に古いバージョンを受け取り、次に更新がすべてのインスタンスに適用されます。
+ *作成*: インスタンスが指定されておらず、スタックセットが存在しない場合は、** CloudFormationsStackSet ** アクション は、インスタンスを作成せずにスタックセットを作成します。
+ * 更新 *: **CloudFormationsStackSet** アクションがすでに作成されたスタックセットに対して実行されているとき、アクションはスタックセットを更新します。インスタンスが指定されておらず、スタックセットがすでに存在する場合は、すべてのインスタンスが更新されます。このアクションが 特定の インスタンスの更新に使用されている場合、残りのすべてのインスタンスが OUTDATED ステータスに移行します。

  **CloudFormationsStackSet** アクションを使用して、次の方法でスタックセットを更新します。
  + 一部またはすべてのインスタンスでテンプレートを更新します。
  + 一部またはすべてのインスタンスのパラメータを更新します。
  +  スタックセット の実行ロールを更新します。(これは、管理者ロールで指定された 実行 ロールと一致しなければなりません)。
  +  アクセス許可 モデルを変更します (インスタンスが作成されていない場合のみ)。
  + スタックセットのアクセス許可モデルが `Service Managed` の場合、`AutoDeployment` を有効または無効にします。
  + スタックセットのアクセス許可モデルが `Service Managed` の場合は、メンバーアカウントの委任管理者となります。
  + 管理者ロール を更新します。
  + スタックセット の説明を更新します。
  + デプロイターゲットをスタックセットの更新に追加して、新しいスタックインスタンスを作成します。

`CloudFormationStackInstances` アクションは、新しいスタックインスタンスを作成するか、古いスタックインスタンスを更新します。スタックセットが更新されると、インスタンスは古くなりますが、その中のすべてのインスタンスが更新されるわけではありません。
+ *作成*: スタックがすでに存在する場合には、`CloudFormationStackInstances` アクションはインスタンスの更新のみを行い、スタックインスタンスは作成しません。
+ *更新*: `CloudFormationStackSet` アクションが実行された後に、テンプレートまたはパラメータが一部のインスタンスでのみ更新された場合、残りは `OUTDATED` とマークされます。後期のパイプラインのステージでは、`CloudFormationStackInstances` は断続的にスタックセット内の残りのインスタンスを更新して、すべてのインスタンスが `CURRENT` とマークされるようにします。このアクションは、インスタンスを追加、または新しいインスタンスまたは既存のインスタンスでパラメータをオーバーライドするために使用できます。

アップデートの一環として、`CloudFormationStackSet` そして `CloudFormationStackInstances` アクションは、新しいデプロイターゲットを指定して、新しいスタックインスタンスを作成します。

アップデートの一環として、`CloudFormationStackSet` そして `CloudFormationStackInstances` アクションは、スタックセット、インスタンス、またはリソースを削除しません。アクションがスタックを更新する一方、すべてのインスタンスが更新されないよう指定する場合、更新を指定しなかったインスタンスは更新から除外され、ステータスが `OUTDATED` に設定されます。

デプロイ中、インスタンスへのデプロイが失敗した場合、スタックインスタンスは、`OUTDATED` のステータスを表示することもできます。

## パイプラインで StackSets アクションを構成する方法
<a name="action-reference-StackSets-bestpractices"></a>

ベストプラクティスとして、スタックセットが作成され、最初にサブセットまたは単一のインスタンスにデプロイされるようにパイプラインを構築する必要があります。デプロイをテストし、生成されたスタックセットを表示したら、`CloudFormationStackInstances` アクションを追加し、残りのインスタンスが作成および更新されるようにします。

コンソールまたは CLI を使用して、次のように推奨されるパイプライン構造を作成します。

1. ソースアクションを持つパイプラインを作成し (必須)、`CloudFormationStackSet` アクションをデプロイアクションとして指定します。パイプラインを実行します。

1. パイプラインが最初に実行されると、`CloudFormationStackSet` アクションがスタックセットと少なくとも 1 つの初期インスタンスを*作成*します。スタックセットの作成を確認し、初期インスタンスへのデプロイを確認します。例えば、`us-east-1` が指定されたリージョンであるアカウント Account-A のスタックセットの初期作成では、スタックインスタンスは次のスタックセットで作成されます。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/action-reference-StackSets.html)

1. パイプラインを編集して、指定したターゲットのスタックインスタンスを作成または更新する 2 番目のデプロイアクションとして `CloudFormationStackInstances` を追加します。例えば、`us-east-2` および`eu-central-1` リージョンが指定されるアカウント `Account-A` のスタックインスタンスの作成の場合、残りのスタックインスタンスが作成され、初期インスタンスは次のように更新されます。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/action-reference-StackSets.html)

1. 必要に応じてパイプラインを実行して、スタックセットを更新し、スタックインスタンスを更新または作成します。

アクション設定からデプロイターゲットを削除したスタックの更新を開始すると、更新用に指定されていなかったスタックインスタンスがデプロイから削除され、OUTDATED ステータスに移行します。たとえば、`Account-A` リージョンがアクション設定から削除されたアカウント `us-east-2` のスタックインスタンスの更新の場合、残りのスタックインスタンスが作成され、削除されたインスタンスは OUTDATED に設定されます。


****  

| スタックインスタンス  | リージョン | ステータス | 
| --- | --- | --- | 
| StackInstanceID-1  | us–east–1 | CURRENT | 
| StackInstanceID-2 | us-east-2 | OUTDATED | 
| StackInstanceID-3 | eu-central-1 | CURRENT | 

スタックセットのデプロイのベストプラクティスの詳細については、*AWS CloudFormation ユーザーガイド*で StackSets の[ベストプラクティス](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html)を参照してください。

## `CloudFormationStackSet` アクション
<a name="action-reference-StackSet"></a>

アクションはパイプラインのソース場所に保存されているテンプレートからのスタックセットを作成または更新します。

スタックセットを定義したら、設定パラメータに指定されたターゲットアカウントや リージョンでスタックを作成、更新、削除できるようになります。スタックの作成、更新、削除の際に、オペレーションを実行するリージョンの順序、スタックオペレーションを停止するフォールトトレランスパーセンテージ、スタックでオペレーションを同時に実行するアカウント数など、その他の環境設定を指定することができます。

スタックセットはリージョンのリソースです。1 つの AWS リージョンでスタックセットを作成する場合、他のリージョンからスタックセットにアクセスすることはできません。

このアクションをスタックセットに対する更新アクションとして使用する場合、少なくとも 1 つの スタック インスタンスにデプロイがないと、スタックの更新は許可されません。

**Topics**
+ [アクションタイプ](#action-reference-StackSet-type)
+ [設定パラメータ](#action-reference-StackSet-config)
+ [入力アーティファクト](#action-reference-StackSet-input)
+ [出力アーティファクト](#action-reference-StackSet-output)
+ [出力変数](#action-reference-StackSet-variables)
+ [例 **CloudFormationStackSet** アクションの設定](#action-reference-StackSet-example)

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

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

**StackSetName**  
必須: はい  
スタックセットに関連付ける名前。この名前は作成されるリージョンで一意であることが必要です。  
名前には、英数字とハイフンのみを使用することができます。アルファベットで始まり、また 128 文字以下である必要があります。

**説明**  
必須: いいえ  
スタックセットの説明。これを使用して、スタックセットの目的やその他の関連情報を記述できます。

**TemplatePath**  
必須: はい  
スタックセット内のリソースを定義するテンプレートのロケーション。これは、最大サイズ 460,800 byte のテンプレートを指定する必要があります。  
フォーマット `"InputArtifactName::TemplateFileName"` で、ソースアーティファクト名とテンプレートファイルへのパスを次の例に示すように入力します。  

```
SourceArtifact::template.txt
```

**パラメータ**  
必須: いいえ  
デプロイ中に更新されるスタックセットのテンプレートパラメータのリスト。  
パラメータはリテラルリストまたはファイルパスとして提供できます。  
+ パラメータは、次の `ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string` のような省略構文のフォーマットで入力できます。これらのデータタイプの詳細については、「[テンプレートパラメータのデータタイプ](#action-reference-StackSets-datatypes)」を参照してください。

  次の例は、`amzn-s3-demo-source-bucket` という名前のパラメータの値 `BucketName` を示しています。

  ```
  ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
  ```

  次の例は、複数のパラメータを持つエントリを示しています。

  ```
                                                                                                        
    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
    ParameterKey=Asset1,ParameterValue=true              
    ParameterKey=Asset2,ParameterValue=true
  ```
+ 次の例で示すように、フォーマット `"InputArtifactName::ParametersFileName"` で入力されたテンプレートパラメータのオーバーライドのリストを含むファイルのロケーションを入力できます。

  ```
  SourceArtifact::parameters.txt
  ```

  次の例では、`parameters.txt` のファイルの内容を示します。

  ```
  [
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      },
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      }
  ]
  ```

**機能**  
必須: いいえ  
テンプレート内のリソースのタイプに応じて、テンプレートがリソースを作成および更新できることを示します。  
このプロパティは、スタックテンプレートに IAM リソースがある場合、またはマクロを含むテンプレートから直接スタックを作成する場合に使用する必要があります。 CloudFormation アクションをこの方法で正常に動作させるには、次のいずれかの機能を使用する必要があります。  
+ `CAPABILITY_IAM` 
+ `CAPABILITY_NAMED_IAM` 
 機能間にカンマ (スペースなし) を使用して、複数の機能を指定できます。[例 **CloudFormationStackSet** アクションの設定](#action-reference-StackSet-example) の例は、複数の機能を持つエントリを示しています。

**PermissionModel**  
必須: いいえ  
IAM ロールの作成および管理方法を決定します。フィールドを指定しない場合、デフォルトが使用されます。詳細については、「[スタックセットオペレーションのアクセス許可モデル](#action-reference-StackSets-permissions)」を参照してください。  
次の値を指定できます。  
+ `SELF_MANAGED` (デフォルト): ターゲットアカウントにデプロイするには、管理者ロールと実行ロールを作成する必要があります。
+ `SERVICE_MANAGED`: CloudFormation StackSets は、 AWS Organizations が管理するアカウントにデプロイするために必要な IAM ロールを自動的に作成します。これには、アカウントが組織のメンバーである必要があります。
このパラメータは、スタックセットにスタックインスタンスが存在しない場合にのみ変更できます。

****AdministrationRoleARN****  
 CloudFormation StackSets は複数のアカウントでオペレーションを実行するため、スタックセットを作成する前に、それらのアカウントで必要なアクセス許可を定義する必要があります。
必須: いいえ  
このパラメータは SELF\$1MANAGED アクセス許可モデルの場合はオプションで、SERVICE\$1MANAGED アクセス許可モデルには使用されません。
スタックセットオペレーションの実行に使用される管理者アカウントの IAM ロールの ARN。  
名前には、英数字と記号 \$1\$1=,.@-, を使用できます。スペースは使用できません。名前では、大文字と小文字は区別されません。このロール名は、最小 20 文字、最大 2048 文字の長さでなければなりません。ロール名はアカウント内で一意である必要があります。ここで指定するロール名は、既存のロール名である必要があります。ロール名を指定しない場合は、AWSCloudFormationStackSetAdministrationRole に設定されます。ServiceManaged を指定する場合は、ロール名を定義してはいけません。

****ExecutionRoleName****  
 CloudFormation StackSets は複数のアカウントでオペレーションを実行するため、スタックセットを作成する前に、それらのアカウントで必要なアクセス許可を定義する必要があります。
必須: いいえ  
このパラメータは SELF\$1MANAGED アクセス許可モデルの場合はオプションで、SERVICE\$1MANAGED アクセス許可モデルには使用されません。
スタックセットオペレーションの実行に使用されるターゲットアカウントの IAM ロールの名前。名前には、英数字と記号 \$1\$1=,.@-, を使用できます。スペースは使用できません。名前では、大文字と小文字は区別されません。このロール名は、最小 1 文字、最大 64 文字の長さでなければなりません。ロール名はアカウント内で一意である必要があります。ここで指定するロール名は、既存のロール名である必要があります。カスタマイズされた実行ロールを使用している場合は、このロールを指定しないでください。ロール名を指定しない場合は、`AWSCloudFormationStackSetExecutionRole` に設定されます。Service\$1Managed を true に設定する場合は、ロール名を定義してはいけません。

****OrganizationsAutoDeployment ****  
必須: いいえ  
このパラメータは SERVICE\$1MANAGED アクセス許可モデルの場合はオプションで、SELF\$1MANAGED アクセス許可モデルには使用されません。
ターゲット組織または組織単位 (OU) に追加された Organizations アカウントに CloudFormation StackSets が自動的にデプロイ AWS されるかどうかについて説明します。もし `OrganizationsAutoDeployment` が指定されている場合は、`DeploymentTargets` そして `Regions` を指定しないでください。  
`OrganizationsAutoDeployment` に入力が指定されていない場合、デフォルト値は `Disabled` です。
次の値を指定できます。  
+ `Enabled`。必須: いいえ 

  StackSets は、指定したリージョンのターゲット組織または組織単位 (OU) に追加した AWS Organizations アカウントに追加のスタックインスタンスを自動的にデプロイします。アカウントがターゲット組織または OU から削除された場合、 CloudFormation StackSets は指定されたリージョンのアカウントからスタックインスタンスを削除します。
+ `Disabled`。必須: いいえ 

  StackSets は、指定されたリージョンのターゲット組織または組織単位 (OU) に追加された AWS Organizations アカウントに、追加のスタックインスタンスを自動的にデプロイしません。
+ `EnabledWithStackRetention`。必須: いいえ

  ターゲット組織または OU からアカウントを削除したときに スタックリソースは保持されます。

****DeploymentTargets****  
必須: いいえ  
SERVICE\$1MANAGED アクセス許可モデルの場合、デプロイターゲットに組織ルート ID または組織単位 ID を提供できます。SELF\$1MANAGED アクセス許可モデルの場合、アカウントのみを提供できます。
このパラメータを選択する場合は、**リージョン** も選択する必要があります。
スタックセットインスタンスを作成/更新する AWS アカウントまたは組織単位 IDs のリスト。  
+ **Accounts**:

  アカウントは、リテラルリストまたはファイルパスとして指定できます。
  + *リテラル*: 次の例に示すように、パラメータを省略構文のフォーマット `account_ID,account_ID` で入力します。

    ```
    111111222222,333333444444
    ```
  + *ファイルパス: * スタックセットインスタンスを作成/更新する AWS アカウントのリストを含むファイルの場所。 形式で入力します`InputArtifactName::AccountsFileName`。ファイルパスを使用して **accounts** または **OrganizationalUnitIds** のいずれかを指定する場合、以下の例に示すように、ファイル形式は JSON であることが必要です。

    ```
    SourceArtifact::accounts.txt
    ```

    次の例では、`accounts.txt` のファイルの内容を示します。

    ```
    [
        "111111222222"
    ]
    ```

    以下の例では、複数のアカウントを一覧表示したときの `accounts.txt` のファイルの内容を示しています。

    ```
    [
        "111111222222","333333444444"
    ]
    ```
+ **OrganizationalUnitIds** 
**注記**  
このパラメータは SERVICE\$1MANAGED アクセス許可モデルの場合はオプションで、SELF\$1MANAGED アクセス許可モデルには使用されません。**OrganizationsAutoDeployment** を選択した場合は、これを使用しないでください。

  関連付けられたスタックインスタンスを更新する AWS 組織単位。

  組織単位 ID は、リテラルリストまたはファイルパスとして提供できます。
  + *リテラル*: 次の例に示すように、カンマで区切って文字列の配列を入力します。

    ```
    ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    ```
  + *ファイルパス:* スタックセットインスタンスを作成または更新する OrganizationalUnitIds のリストを含むファイルの場所。ファイルパスを使用して **accounts** または **OrganizationalUnitIds** のいずれかを指定する場合、以下の例に示すように、ファイル形式は JSON であることが必要です。

    ファイルのパスをフォーマット `InputArtifactName::OrganizationalUnitIdsFileName` で入力します。

    ```
    SourceArtifact::OU-IDs.txt
    ```

    次の例では、`OU-IDs.txt` のファイルの内容を示します。

    ```
    [
        "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222"
    ]
    ```

****リージョン****  
必須: いいえ  
このパラメータを選択する場合は、**DeploymentTargets** も選択する必要があります。
スタックセットインスタンスが作成または更新される AWS リージョンのリスト。リージョンは、入力された順序で更新されます。  
次の例に示すように`Region1,Region2`、有効な AWS リージョンのリストを の形式で入力します。  

```
us-west-2,us-east-1
```

****FailureTolerancePercentage****  
必須: いいえ  
このスタックオペレーションが失敗する可能性のあるリージョンあたりのアカウントの割合。 はそのリージョンでオペレーションを CloudFormation 停止します。オペレーションがリージョンで停止した場合、 CloudFormation は後続のリージョンでオペレーションを試みません。指定された割合に基づいてアカウント数を計算する場合、 は次の整数に CloudFormation 切り*下げ*られます。

****MaxConcurrentPercentage****  
必須: いいえ  
このオペレーションを一度に実行するアカウントの最大の割合。指定された割合に基づいてアカウント数を計算する場合、 は次の整数に CloudFormation 切り*下げ*られます。切り捨てるとゼロになる場合、 は代わりに数値を 1 として CloudFormation 設定します。この設定で *最大値* を指定する場合でも、大規模なデプロイでは、同時に処理される実際のアカウント数はサービスのスロットリングのために低くなる可能性があります。

**RegionConcurrencyType**  
必須: いいえ  
リージョン同時デプロイパラメータを設定することで、スタックセットを AWS リージョン 全体に順次デプロイするか、並列デプロイするかを指定できます。複数の にスタックを並行 AWS リージョン してデプロイするようにリージョンの同時実行を指定すると、全体的なデプロイ時間が短縮される可能性があります。  
+ *並列*: スタックセットのデプロイは、指定された失敗許容回数をリージョンのデプロイ失敗が超えない限り、同時に行われます。
+ *順次*: スタックセットのデプロイは、リージョンのデプロイ失敗が指定された失敗許容回数を超えない限り、一度に 1 つずつ行われます。デフォルトでは、順次デプロイが選択されています。

**ConcurrencyMode**  
必須: いいえ  
同時実行モードでは、スタックセットオペレーション時の同時実行レベルの動作を、厳密な耐障害性またはソフトな耐障害性のいずれかを選択できます。**厳密な障害耐性**では、障害が発生するたびに同時実行性が低下するため、スタックセットの操作に障害が発生するため、デプロイ速度が低下します。**ソフト障害耐性**は、 CloudFormation 安全機能を活用しながら、デプロイ速度を優先します。  
+ `STRICT_FAILURE_TOLERANCE`: このオプションでは、失敗したアカウントの数が特定の耐障害性を超えないように、同時実行レベルを動的に下げます。これがデフォルトの動作です。
+ `SOFT_FAILURE_TOLERANCE`: このオプションは実際の同時実行性から耐障害性を切り離します。これにより、障害の数に関係なく、スタックセットの操作を設定された同時実行レベルで実行できます。

**CallAs**  
必須: いいえ  
このパラメータは、`SERVICE_MANAGED` アクセス許可モデルではオプションであり、`SELF_MANAGED` アクセス許可モデルでは使用しません。
組織の管理アカウントで行動するか、メンバーアカウントで委任管理者として行動するかを指定します。  
このパラメータを `DELEGATED_ADMIN` に設定する場合は、パイプライン IAM ロールに `organizations:ListDelegatedAdministrators` アクセス許可があることを確認してください。それ以外の場合、アクションは実行中に失敗し、「`Account used is not a delegated administrator`」のようなエラーが発生します。
+ `SELF`: スタックセットのデプロイでは、管理アカウントにサインインしている間、サービスマネージドアクセス許可を使用します。
+ `DELEGATED_ADMIN`: スタックセットのデプロイでは、委任管理者アカウントにサインインしている間、サービスマネージドアクセス許可を使用します。

### 入力アーティファクト
<a name="action-reference-StackSet-input"></a>

`CloudFormationStackSet` アクションでスタックセットのテンプレートを含む入力アーティファクトを少なくとも 1 つ含める必要があります。デプロイターゲット、アカウント、およびパラメータのリストには、より多くの入力アーティファクトを含めることができます。
+ **アーティファクトの数:** `1 to 3`
+ **説明:** アーティファクトを含めて、以下を提供できます。
  + スタックテンプレートファイル （`TemplatePath` パラメータを参照。）
  + パラメータファイル （`Parameters` パラメータを参照。）
  + アカウントファイル （`DeploymentTargets` パラメータを参照。）

### 出力アーティファクト
<a name="action-reference-StackSet-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。
+ **StackSetId**: スタックセットの ID。
+ **OperationId**: スタックセットオペレーションの ID。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

### 例 **CloudFormationStackSet** アクションの設定
<a name="action-reference-StackSet-example"></a>

次の例は、**CloudFormationStackSet** アクションのアクション設定を示しています。

#### 自己管理型のアクセス許可モデルの例
<a name="action-reference-StackSet-example-selfmanaged"></a>

次の例は、入力されたデプロイターゲットが AWS アカウント ID である **CloudFormationStackSet** アクションを示しています。

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

```
Name: CreateStackSet
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackSet
  Version: '1'
RunOrder: 1
Configuration:
  DeploymentTargets: '111111222222'
  FailureTolerancePercentage: '20'
  MaxConcurrentPercentage: '25'
  PermissionModel: SELF_MANAGED
  Regions: us-east-1
  StackSetName: my-stackset
  TemplatePath: 'SourceArtifact::template.json'
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
Namespace: DeployVariables
```

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

```
{
    "Name": "CreateStackSet",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackSet",
        "Version": "1"
    },
    "RunOrder": 1,
    "Configuration": {
        "DeploymentTargets": "111111222222",
        "FailureTolerancePercentage": "20",
        "MaxConcurrentPercentage": "25",
        "PermissionModel": "SELF_MANAGED",
        "Regions": "us-east-1",
        "StackSetName": "my-stackset",
        "TemplatePath": "SourceArtifact::template.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2",
    "Namespace": "DeployVariables"
}
```

------

#### サービス管理型のアクセス許可モデルの例
<a name="action-reference-StackSet-example-servicemanaged"></a>

次の例は、 AWS Organizations への自動デプロイのオプションがスタック保持で有効になっている、サービスマネージドアクセス許可モデルの **CloudFormationStackSet** アクションを示しています。

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

```
Name: Deploy
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackSet
  Version: '1'
RunOrder: 1
Configuration:
  Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM'
  OrganizationsAutoDeployment: EnabledWithStackRetention
  PermissionModel: SERVICE_MANAGED
  StackSetName: stacks-orgs
  TemplatePath: 'SourceArtifact::template.json'
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: eu-central-1
Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackSet",
        "Version": "1"
    },
    "RunOrder": 1,
    "Configuration": {
        "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM",
        "OrganizationsAutoDeployment": "EnabledWithStackRetention",
        "PermissionModel": "SERVICE_MANAGED",
        "StackSetName": "stacks-orgs",
        "TemplatePath": "SourceArtifact::template.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "eu-central-1",
    "Namespace": "DeployVariables"
}
```

------

## CloudFormationStackInstances アクション
<a name="action-reference-StackInstances"></a>

このアクションは 新しいインスタンスを作成し、指定されたインスタンスに スタックセットをデプロイします。スタックインスタンスは、リージョン内のターゲットアカウントのスタックへのリファレンスです。スタックインスタンスは、スタックがなくても存在することができます。たとえば、スタックの作成が失敗した場合は、スタック作成の失敗理由がスタックインスタンスに表示されます。スタックインスタンスに関連付けられるスタックセットは、1 つのみです。

スタックセットの最初の作成後、`CloudFormationStackInstances` を使用して新しいスタックインスタンスを追加できます。テンプレートパラメータ値は、スタックセットインスタンスの作成または更新オペレーション中にスタックインスタンスレベルでオーバーライドできます。

各スタックセットには、1 つのテンプレートとテンプレートパラメータのセットがあります。テンプレートまたはテンプレートパラメータを更新すると、セット全体のパラメータが更新されます。次に、変更がそのインスタンスにデプロイされるまですべてのインスタンスステータスが `OUTDATED` に設定されます。

特定のインスタンスのパラメータ値をオーバーライドするには、たとえばテンプレートに `stage` のパラメータが `prod` の値で含まれている場合、そのパラメータ値を `beta` または `gamma` にオーバーライドできます。

**Topics**
+ [アクションタイプ](#action-reference-StackInstances-type)
+ [設定パラメータ](#action-reference-StackInstances-config)
+ [入力アーティファクト](#action-reference-StackInstances-input)
+ [出力アーティファクト](#action-reference-StackInstances-output)
+ [出力変数](#action-reference-StackInstances-variables)
+ [アクション設定の例](#action-reference-StackInstances-example)

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

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

**StackSetName**  
必須: はい  
スタックセットに関連付ける名前。この名前は作成されるリージョンで一意であることが必要です。  
名前には、英数字とハイフンのみを使用することができます。アルファベットで始まり、また 128 文字以下である必要があります。

****DeploymentTargets****  
必須: いいえ  
SERVICE\$1MANAGED アクセス許可モデルの場合、デプロイターゲットに組織ルート ID または組織単位 ID を提供できます。SELF\$1MANAGED アクセス許可モデルの場合、アカウントのみを提供できます。
このパラメータを選択する場合は、**リージョン** も選択する必要があります。
スタックセットインスタンスを作成/更新する AWS アカウントまたは組織単位 IDs のリスト。  
+ **Accounts**:

  アカウントは、リテラルリストまたはファイルパスとして指定できます。
  + *リテラル*: 次の例に示すように、パラメータを省略構文のフォーマット `account_ID,account_ID` で入力します。

    ```
    111111222222,333333444444
    ```
  + *ファイルパス: * スタックセットインスタンスを作成/更新する AWS アカウントのリストを含むファイルの場所。 形式で入力します`InputArtifactName::AccountsFileName`。ファイルパスを使用して **accounts** または **OrganizationalUnitIds** のいずれかを指定する場合、以下の例に示すように、ファイル形式は JSON であることが必要です。

    ```
    SourceArtifact::accounts.txt
    ```

    次の例では、`accounts.txt` のファイルの内容を示します。

    ```
    [
        "111111222222"
    ]
    ```

    以下の例では、複数のアカウントを一覧表示したときの `accounts.txt` のファイルの内容を示しています。

    ```
    [
        "111111222222","333333444444"
    ]
    ```
+ **OrganizationalUnitIds** 
**注記**  
このパラメータは SERVICE\$1MANAGED アクセス許可モデルの場合はオプションで、SELF\$1MANAGED アクセス許可モデルには使用されません。**OrganizationsAutoDeployment** を選択した場合は、これを使用しないでください。

  関連付けられたスタックインスタンスを更新する AWS 組織単位。

  組織単位 ID は、リテラルリストまたはファイルパスとして提供できます。
  + *リテラル*: 次の例に示すように、カンマで区切って文字列の配列を入力します。

    ```
    ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    ```
  + *ファイルパス:* スタックセットインスタンスを作成または更新する OrganizationalUnitIds のリストを含むファイルの場所。ファイルパスを使用して **accounts** または **OrganizationalUnitIds** のいずれかを指定する場合、以下の例に示すように、ファイル形式は JSON であることが必要です。

    ファイルのパスをフォーマット `InputArtifactName::OrganizationalUnitIdsFileName` で入力します。

    ```
    SourceArtifact::OU-IDs.txt
    ```

    次の例では、`OU-IDs.txt` のファイルの内容を示します。

    ```
    [
        "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222"
    ]
    ```

****リージョン****  
必須: はい  
このパラメータを選択する場合は、**DeploymentTargets** も選択する必要があります。
スタックセットインスタンスが作成または更新される AWS リージョンのリスト。リージョンは、入力された順序で更新されます。  
次の例に示すように`Region1,Region2`、有効な AWS リージョンのリストを の形式で入力します。  

```
us-west-2,us-east-1
```

**ParameterOverrides**  
必須: いいえ  
選択したスタックインスタンスでオーバーライドしたいスタックセットパラメータのリスト。オーバーライドされたパラメータ値は、指定されたアカウントおよびリージョン内のすべてのスタックインスタンスに適用されます。  
パラメータはリテラルリストまたはファイルパスとして提供できます。  
+ パラメータは、次の `ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string` のような省略構文のフォーマットで入力できます。これらのデータタイプの詳細については、「[テンプレートパラメータのデータタイプ](#action-reference-StackSets-datatypes)」を参照してください。

  次の例は、`amzn-s3-demo-source-bucket` という名前のパラメータの値 `BucketName` を示しています。

  ```
  ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
  ```

  次の例は、複数のパラメータを持つエントリを示しています。

  ```
                                                                                                        
    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket
    ParameterKey=Asset1,ParameterValue=true              
    ParameterKey=Asset2,ParameterValue=true
  ```
+ 次の例で示すように、フォーマット `InputArtifactName::ParameterOverridessFileName` で入力されたテンプレートパラメータのオーバーライドのリストを含むファイルのロケーションを入力できます。

  ```
  SourceArtifact::parameter-overrides.txt
  ```

  次の例では、`parameter-overrides.txt` のファイルの内容を示します。

  ```
  [
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      },
      {
          "ParameterKey": "KeyName",
          "ParameterValue": "true"
      }
  ]
  ```

****FailureTolerancePercentage****  
必須: いいえ  
このスタックオペレーションが失敗する可能性のあるリージョンあたりのアカウントの割合。 はそのリージョンでオペレーションを CloudFormation 停止します。オペレーションがリージョンで停止した場合、 CloudFormation は後続のリージョンでオペレーションを試みません。指定された割合に基づいてアカウント数を計算する場合、 は次の整数に CloudFormation 切り*下げ*られます。

****MaxConcurrentPercentage****  
必須: いいえ  
このオペレーションを一度に実行するアカウントの最大の割合。指定された割合に基づいてアカウント数を計算する場合、 は次の整数に CloudFormation 切り*下げ*られます。切り捨てるとゼロになる場合、 は代わりに数値を 1 として CloudFormation 設定します。*最大値* を指定する場合でも、大規模なデプロイでは、同時に処理される実際のアカウント数はサービスのスロットリングのために低くなる可能性があります。

**RegionConcurrencyType**  
必須: いいえ  
リージョン同時デプロイパラメータを設定することで、スタックセットを AWS リージョン 全体に順次デプロイするか、並列デプロイするかを指定できます。複数の にスタックを並行 AWS リージョン してデプロイするようにリージョンの同時実行を指定すると、全体的なデプロイ時間が短縮される可能性があります。  
+ *並列*: スタックセットのデプロイは、指定された失敗許容回数をリージョンのデプロイ失敗が超えない限り、同時に行われます。
+ *順次*: スタックセットのデプロイは、リージョンのデプロイ失敗が指定された失敗許容回数を超えない限り、一度に 1 つずつ行われます。デフォルトでは、順次デプロイが選択されています。

**ConcurrencyMode**  
必須: いいえ  
同時実行モードでは、スタックセットオペレーション時の同時実行レベルの動作を、厳密な耐障害性またはソフトな耐障害性のいずれかを選択できます。**厳密な障害耐性**では、障害が発生するたびに同時実行性が低下するため、スタックセットの操作に障害が発生するため、デプロイ速度が低下します。**ソフト障害耐性**は、 CloudFormation 安全機能を活用しながら、デプロイ速度を優先します。  
+ `STRICT_FAILURE_TOLERANCE`: このオプションでは、失敗したアカウントの数が特定の耐障害性を超えないように、同時実行レベルを動的に下げます。これがデフォルトの動作です。
+ `SOFT_FAILURE_TOLERANCE`: このオプションは実際の同時実行性から耐障害性を切り離します。これにより、障害の数に関係なく、スタックセットの操作を設定された同時実行レベルで実行できます。

**CallAs**  
必須: いいえ  
このパラメータは、`SERVICE_MANAGED` アクセス許可モデルではオプションであり、`SELF_MANAGED` アクセス許可モデルでは使用しません。
組織の管理アカウントで行動するか、メンバーアカウントで委任管理者として行動するかを指定します。  
このパラメータを `DELEGATED_ADMIN` に設定する場合は、パイプライン IAM ロールに `organizations:ListDelegatedAdministrators` アクセス許可があることを確認してください。それ以外の場合、アクションは実行中に失敗し、「`Account used is not a delegated administrator`」のようなエラーが発生します。
+ `SELF`: スタックセットのデプロイでは、管理アカウントにサインインしている間、サービスマネージドアクセス許可を使用します。
+ `DELEGATED_ADMIN`: スタックセットのデプロイでは、委任管理者アカウントにサインインしている間、サービスマネージドアクセス許可を使用します。

### 入力アーティファクト
<a name="action-reference-StackInstances-input"></a>

`CloudFormationStackInstances` にデプロイターゲットとパラメータをリストするアーティファクトを含めることができます。
+ **アーティファクトの数:** `0 to 2`
+ **説明:** 入力として、 スタックセットアクションはオプションでこれらの目的でアーティファクトを受け入れます。
  + 使用するパラメータファイルを提供するには （`ParameterOverrides` パラメータを参照。）
  + 使用するターゲットアカウントファイルを提供するには （`DeploymentTargets` パラメータを参照。）

### 出力アーティファクト
<a name="action-reference-StackInstances-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。
+ **StackSetId**: スタックセットの ID。
+ **OperationId**: スタックセットオペレーションの ID。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

### アクション設定の例
<a name="action-reference-StackInstances-example"></a>

次の例は、**CloudFormationStackInstances** アクションのアクション設定を示しています。

#### 自己管理型のアクセス許可モデルの例
<a name="action-reference-StackInstances-example-selfmanaged"></a>

次の例は、入力されたデプロイターゲットが AWS アカウント ID である **CloudFormationStackInstances** アクションを示しています`111111222222`。

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

```
Name: my-instances
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackInstances
  Version: '1'
RunOrder: 2
Configuration:
  DeploymentTargets: '111111222222'
  Regions: 'us-east-1,us-east-2,us-west-1,us-west-2'
  StackSetName: my-stackset
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
```

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

```
{
    "Name": "my-instances",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackInstances",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "DeploymentTargets": "111111222222",
        "Regions": "us-east-1,us-east-2,us-west-1,us-west-2",
        "StackSetName": "my-stackset"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2"
}
```

------

#### サービス管理型のアクセス許可モデルの例
<a name="action-reference-StackInstances-example-servicemanaged"></a>

次の例は、デプロイターゲットが AWS Organizations 組織単位 ID であるサービスマネージドアクセス許可モデルの **CloudFormationStackInstances** アクションを示しています`ou-1111-1example`。

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

```
Name: Instances
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: CloudFormationStackInstances
  Version: '1'
RunOrder: 2
Configuration:
  DeploymentTargets: ou-1111-1example
  Regions: us-east-1
  StackSetName: my-stackset
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: eu-central-1
```

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

```
{
    "Name": "Instances",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "CloudFormationStackInstances",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "DeploymentTargets": "ou-1111-1example",
        "Regions": "us-east-1",
        "StackSetName": "my-stackset"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "eu-central-1"
}
```

------

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

 CloudFormation StackSets アクションには、次の最小限のアクセス許可が必要です。

`CloudFormationStackSet` のアクションについては、以下をポリシーステートメントに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:CreateStackSet",
        "cloudformation:UpdateStackSet",
        "cloudformation:CreateStackInstances",
        "cloudformation:DescribeStackSetOperation",
        "cloudformation:DescribeStackSet",
        "cloudformation:ListStackInstances"
    ],
    "Resource": "resource_ARN"
},
```

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

`CloudFormationStackInstances` のアクションについては、以下をポリシーステートメントに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:CreateStackInstances",
        "cloudformation:DescribeStackSetOperation"
    ],
    "Resource": "resource_ARN"
},
```

## スタックセットオペレーションのアクセス許可モデル
<a name="action-reference-StackSets-permissions"></a>

 CloudFormation StackSets は複数のアカウントでオペレーションを実行するため、スタックセットを作成する前に、それらのアカウントで必要なアクセス許可を定義する必要があります。アクセス許可は、自己管理型のアクセス許可またはサービス管理型のアクセス許可を使用して定義できます。

自己管理アクセス許可を使用して、StackSets で必要な 2 つの IAM ロールを作成します。これは、スタックセットを定義するアカウント内の AWSCloudFormationStackSetAdministrationRole などの管理者ロールと、スタックセットインスタンスをデプロイする各アカウントの AWSCloudFormationStackSetExecutionRole などの実行ロールです。このアクセス許可モデルを使用すると、StackSets は、ユーザーが IAM ロールを作成するアクセス許可を持つ任意の AWS アカウントにデプロイできます。詳細については、[[AWS CloudFormation ユーザーガイド ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)] の「*自己管理型のアクセス許可の承認*」を参照してください。

**注記**  
 CloudFormation StackSets は複数のアカウントでオペレーションを実行するため、スタックセットを作成する前に、それらのアカウントで必要なアクセス許可を定義する必要があります。

サービスマネージド型のアクセス許可を使用すると、 AWS Organizations が管理するアカウントにスタックインスタンスをデプロイできます。このアクセス許可モデルを使用すると、必要な IAM ロールを作成する必要はありません。ユーザーに代わって StackSets が IAM ロールを作成します。このモデルでは、将来組織に追加されるアカウントへの自動デプロイを有効にすることもできます。*AWS CloudFormation *「 ユーザーガイド」の[AWS 「Organizations で信頼されたアクセスを有効にする](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html)」を参照してください。

## テンプレートパラメータのデータタイプ
<a name="action-reference-StackSets-datatypes"></a>

スタックセットオペレーションで使用されるテンプレートパラメータには、次のデータタイプが含まれます。詳細については、「[DescribeStackset](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)」を参照してください。

ParameterKey  
+ 説明: パラメータに関連付けられたキー。特定のパラメータにキーと値を指定しない場合、 はテンプレートで指定されたデフォルト値 AWS CloudFormation を使用します。
+ 例:

  ```
  "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
  ```

ParameterValue  
+ 説明: パラメータに関連付けられた入力値。
+ 例:

  ```
  "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
  ```

UsePreviousValue  
+ スタックの更新中に、スタックが特定のパラメータキーに使用している既存のパラメータ値を使用します。`true` を指定した場合は、パラメータ値を指定しないでください。
+ 例:

  ```
  "ParameterKey=Asset1,UsePreviousValue=true"
  ```

各スタックセットには、1 つのテンプレートとテンプレートパラメータのセットがあります。テンプレートまたはテンプレートパラメータを更新すると、セット全体のパラメータが更新されます。次に、変更がそのインスタンスにデプロイされるまですべてのインスタンスステータスが OUTDATED に設定されます。

特定のインスタンスのパラメータ値をオーバーライドするには、たとえばテンプレートに `stage` のパラメータが `prod` の値で含まれている場合、そのパラメータ値を `beta` または `gamma` にオーバーライドできます。

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [ パラメータタイプ ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type) - [*AWS CloudFormation ユーザーガイド *] 内のこのリファレンスチャプターでは、CloudFormation テンプレートパラメータの詳細と例をより詳しく提供します。
+ ベストプラクティス - スタックセットのデプロイのベストプラクティスの詳細については、*AWS CloudFormation ユーザーガイド*の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html)」を参照してください。
+ [AWS CloudFormation API リファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/) – スタックセットオペレーションで使用されるパラメータの詳細については、 *AWS CloudFormation API リファレンス*の次の CloudFormation アクションを参照してください。

  
  + [CreateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackSet.html) アクションでスタックセットを作成します。
  + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) アクションで、指定されたアカウントおよびリージョン内のスタックセットおよび関連するスタックインスタンスを更新します。スタックセットの更新で作成されたスタックセットオペレーションが (完全または部分的に、指定されたフォルトトレランス値以下または以上となり) 失敗しても、スタックセットはこれらの変更で更新されます。指定されたスタックセットに対する後続の CreateStackInstances 呼び出しでは、更新されたスタックセットが使用されます。
  + [CreateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html) アクションで、自己管理アクセス許可モデルで指定されたすべてのアカウント内、またはサービス管理アクセス許可モデルで指定されたすべてのデプロイターゲット内に、指定されたすべてのリージョンのスタックインスタンスを作成します。このアクションによって作成されたインスタンスのパラメータをオーバーライドできます。インスタンスがすでに存在する場合、CreateStackInstances は同じ入力パラメータで UpdateStackInstances を呼び出します。このアクションを使用してインスタンスを作成しても、他のスタックインスタンスのステータスは変更されません。
  + [UpdateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackInstances.html) アクションで、自己管理アクセス許可モデルで指定されたすべてのアカウント内、またはサービス管理アクセス許可モデルで指定されたすべてのデプロイターゲット内で、指定されたすべてのリージョンのスタックセットによってスタックインスタンスを最新にします。このアクションによって更新されたインスタンスのパラメータをオーバーライドできます。このアクションを使用してインスタンスのサブセットを更新しても、他のスタックインスタンスのステータスは変更されません。
  + [DescribeStackSetOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeStackSetOperation.html) アクションで、指定されたスタックセットオペレーションの説明を返します。
  + [DescribeStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeStackSet.html) アクションで、指定されたスタックセットの説明を返します。

# 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)」を参照してください。

# AWS CodePipeline アクションリファレンスを呼び出す
<a name="action-reference-PipelineInvoke"></a>

CodePipeline 呼び出しアクションを使用して、ダウンストリームパイプライン実行のトリガーと、パイプライン変数とソースリビジョンをパイプライン間で渡す処理を簡素化します。

**注記**  
このアクションは V2 タイプのパイプラインでのみサポートされています。

**Topics**
+ [アクションタイプ](#action-reference-PipelineInvoke-type)
+ [設定パラメータ](#action-reference-PipelineInvoke-parameters)
+ [入力アーティファクト](#action-reference-PipelineInvoke-input)
+ [出力アーティファクト](#action-reference-PipelineInvoke-output)
+ [CodePipeline 呼び出しアクションのサービスロールポリシーのアクセス許可](#action-reference-PipelineInvoke-permissions-action)
+ [アクションの宣言](#action-reference-PipelineInvoke-example)
+ [関連情報](#action-reference-PipelineInvoke-links)

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

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

**PipelineName**  
必須: はい  
実行中に現在のターゲットパイプラインを開始するパイプラインの名前。呼び出しパイプラインを既に作成している必要があります。`my-s3-pipeline` という名前の (呼び出し) パイプラインが実行を開始すると、アクションは `s3-pipeline-test` (ターゲット) パイプラインを開始します。

**SourceRevisions**  
必須: いいえ  
呼び出しパイプラインによって開始されたときにターゲットパイプラインで使用するソースリビジョン。例えば、S3 ソースアクションは、S3 バージョン ID やオブジェクトキーなどの出力変数を提供します。パイプラインが呼び出されるときに使用するリビジョン値を指定できます。  
CLI では、ソースリビジョンをシリアル化された JSON 文字列として指定します。ソースリビジョンオーバーライドの使用の詳細については、「*CodePipeline API ガイド*」の「[SourceRevisionOverride](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SourceRevisionOverride.html)」を参照してください。  
マッピングでは、次の例に示すように文字列形式を使用します。  

```
[{"actionName":"Source","revisionType":"S3_OBJECT_VERSION_ID","revision
Value":"zq8mjNEXAMPLE"}]
```

**[変数]**  
必須: いいえ  
アクションでサポートする変数の名前と値。  
CLI では、シリアル化された JSON 文字列として変数を指定します。パイプライン変数の使用の詳細については、「[CodePipeline API ガイド](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineVariable.html)」の「*PipelineVariable*」を参照してください。  
マッピングでは、次の例に示すように文字列形式を使用します。  

```
[{"name":"VAR1","value":"VALUE1"}]
```

次の図は、コンソールでパイプラインに追加されたアクションの例を示しています。

![\[S3 ソースを含むパイプライン、およびパイプライン呼び出しアクションを含むビルドステージ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-pipeline-invoke-run.png)


次の画像は、アクションの **[編集]** ページの例を示しています。次の例では、`s3-pipeline-test` という名前のパイプラインに、コンソールに示されているように設定されたパイプライン呼び出しアクションがあります。`my-s3-pipeline` という名前のパイプラインの実行が完了すると、アクションによって `s3-pipeline-test` パイプラインが開始されます。この例では、指定されたリビジョン値が `zq8mjNYEexample` の S3\$1OBJECT\$1VERSION\$1ID ソースオーバーライドのソースリビジョンオーバーライドを示しています。

![\[パイプライン呼び出しアクションを使用した、新しいパイプラインの [アクションを編集する] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-pipeline-invoke-edit.png)


## 入力アーティファクト
<a name="action-reference-PipelineInvoke-input"></a>
+ **アーティファクトの数:** `0`
+ **説明:** 入力アーティファクトは、このアクションタイプには適用されません。

## 出力アーティファクト
<a name="action-reference-PipelineInvoke-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## CodePipeline 呼び出しアクションのサービスロールポリシーのアクセス許可
<a name="action-reference-PipelineInvoke-permissions-action"></a>

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた `codepipeline:StartPipelineExecution` アクセス許可が必要です。

```
 {
            "Sid": "StatementForPipelineInvokeAction",
            "Effect": "Allow",
            "Action": "codepipeline:StartPipelineExecution",
            "Resource": [
                "arn:aws:codepipeline:{{region}}:{{AccountId}}:{{pipelineName}}"
            ]
        }
```

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

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

```
name: Invoke-pipeline
actionTypeId:
  category: Invoke
  owner: AWS
  provider: CodePipeline
  version: '1'
runOrder: 2
configuration:
  PipelineName: my-s3-pipeline
  SourceRevisions: '[{"actionName":"Source","revisionType":"S3_OBJECT_VERSION_ID","revision
Value":"zq8mjNEXAMPLE"}]'
  Variables: '[{"name":"VAR1","value":"VALUE1"}]'
```

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

```
{
    "name": "Invoke-pipeline",
    "actionTypeId": {
        "category": "Invoke",
        "owner": "AWS",
        "provider": "CodePipeline",
        "version": "1"
    },
    "runOrder": 2,
    "configuration": {
        "PipelineName": "my-s3-pipeline",
        "SourceRevisions": "[{\"actionName\":\"Source\",\"revisionType\":\"S3_OBJECT_VERSION_ID\",\"revisionValue\":\"zq8mjNEXAMPLE"}]",
        "Variables": "[{\"name\":\"VAR1\",\"value\":\"VALUE1\"}]"
    }
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+  [ソースリビジョンオーバーライドでパイプラインを開始する](pipelines-trigger-source-overrides.md) – このセクションでは、手動で、または EventBridge イベント入力トランスフォーマーを使用して、ソースリビジョンでパイプラインを開始する方法について説明します。

# CodeCommit ソースアクションリファレンス
<a name="action-reference-CodeCommit"></a>

定された CodeCommit リポジトリとブランチで新しいコミットが行われると、パイプラインがスタートします。

コンソールを使用してパイプラインを作成または編集する場合、CodePipeline はリポジトリで変更が生じた場合にパイプラインを開始する EventBridge ルールを作成します。

**注記**  
Amazon ECR、Amazon S3、または CodeCommit ソースの場合、入力変換エントリを使用してソースオーバーライドを作成し、パイプラインイベントの EventBridge で `revisionValue` を使用することもできます。ここで、`revisionValue` はオブジェクトキー、コミット、またはイメージ ID のソースイベント変数から派生します。詳細については、[Amazon ECR ソースアクションと EventBridge リソース](create-cwe-ecr-source.md)、[イベントに対して有効にしたソースを使用して Amazon S3 ソースアクションに接続する](create-S3-source-events.md)、または [CodeCommit ソースアクションと EventBridge](triggering.md) の手順に含まれる入力変換エントリのオプション手順を参照してください。

CodeCommit アクションを使用してパイプラインを接続する前に、CodeCommit リポジトリを作成しておく必要があります。

コードの変更が検出された後は、後続のアクションにコードを渡すための次のオプションがあります。
+ [**デフォルト**] — CodeCommit ソースアクションが、コミットの浅いコピーを含む ZIP ファイルを出力するように設定します。
+ [**フルクローン**] — ソースアクションが、後続のアクションのためにリポジトリへの Git URL リファレンスを出力するように設定します。

  現在、Git URL リファレンスは、リポジトリと関連する Git メタデータをクローンするためにダウンストリーム CodeBuild アクションでのみ使用できます。Git URL リファレンスを CodeBuild 以外のアクションに渡そうとすると、エラーが発生します。

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

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

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

**RepositoryName**  
必須: はい  
ソースの変更が検出されるリポジトリの名前。

**BranchName**  
必須: はい  
ソースの変更が検出されるブランチの名前。

**PollForSourceChanges**  
必須: いいえ  
`PollForSourceChanges` は、CodePipeline がソースの変更について CodeCommit リポジトリをポーリングするかどうかを制御します。代わりに CloudWatch Events を使用してソースの変更を検出することをお勧めします。CloudWatch Events の構成については、[ポーリングパイプラインを移行する (CodeCommit ソース) (CLI)](update-change-detection.md#update-change-detection-cli-codecommit) または [ポーリングパイプラインの移行 (CodeCommit ソース) (CloudFormation テンプレート)](update-change-detection.md#update-change-detection-cfn-codecommit) を参照してください。  
CloudWatch Events ルールを設定する場合、パイプラインの重複実行を避けるために `PollForSourceChanges` を `false` に設定する必要があります。
このパラメータの有効な値:  
+ `true`: 設定されている場合、CodePipeline はソースの変更についてポーリングします。
**注記**  
`PollForSourceChanges` を省略した場合、CodePipeline はデフォルトでソースの変更についてリポジトリをポーリングします。この動作は、`PollForSourceChanges` が含まれており、`true` に設定されている場合と同じです。
+ `false`: 設定されている場合、CodePipeline は、ソースの変更についてリポジトリをポーリングしません。CloudWatch Events ルールを設定してソース変更を検出する場合は、この設定を使用します。

****OutputArtifactFormat****  
必須: いいえ  
出力 アーティファクト フォーマット。値は `CODEBUILD_CLONE_REF` または `CODE_ZIP` のいずれかです。指定しない場合、デフォルトの `CODE_ZIP` が使用されます。  
`CODEBUILD_CLONE_REF` のオプションは、CodeBuild のダウンストリームアクションでのみ使用可能です。  
このオプションを選択する場合、`codecommit:GitPull` に示すように、CodeBuild サービスロールに [CodeBuild GitClone のアクセス権限を CodeCommit ソースアクションに追加します。](troubleshooting.md#codebuild-role-codecommitclone) 許可を追加する必要があります。また、`codecommit:GetRepository` に示すように、CodePipeline のサービス・ロールに [CodePipeline サービスロールにアクセス許可を追加する](how-to-custom-role.md#how-to-update-role-new-services) 許可を追加する必要もあります。[**フルクローン**] オプションを使用する方法を示すチュートリアルについては、[チュートリアル: CodeCommit パイプラインソースでフルクローンを使用する](tutorials-codecommit-gitclone.md) を参照してください。

## 入力アーティファクト
<a name="action-reference-CodeCommit-input"></a>
+ **アーティファクトの数:** `0`
+ **説明:** 入力アーティファクトは、このアクションタイプには適用されません。

## 出力アーティファクト
<a name="action-reference-CodeCommit-output"></a>
+ **アーティファクトの数:** `1` 
+ **説明:** このアクションの出力アーティファクトは、パイプライン実行のソースリビジョンとして指定されたコミットで設定されたリポジトリとブランチの内容を含む ZIP ファイルです。リポジトリから生成されるアーティファクトは、CodeCommit アクションの出力アーティファクトです。ソースコードのコミット ID は、パイプライン実行のトリガーとなるソースリビジョンとして、CodePipeline に表示されます。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**CommitId**  
パイプライン実行のトリガーとなった CodeCommit のコミット ID。コミット ID は、コミットの完全な SHA です。

**CommitMessage**  
パイプライン実行をトリガーしたコミットに関連付けられた説明メッセージ (存在する場合)。

**RepositoryName**  
パイプラインのトリガーとなるコミットが行われた CodeCommit リポジトリの名前。

**BranchName**  
ソース変更が行われた CodeCommit リポジトリのブランチ名。

**AuthorDate**  
コミットが認証された日付 (タイムスタンプ形式)。

**CommitterDate**  
コミットがコミットされた日付 (タイムスタンプ形式)。

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

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた次のアクセス許可が必要です。例えば、以下をポリシーステートメントに追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:CancelUploadArchive",
                "codecommit:GetBranch",
                "codecommit:GetCommit",
                "codecommit:GetRepository",
                "codecommit:GetUploadArchiveStatus",
                "codecommit:UploadArchive"
            ],
            "Resource": [
                "arn:aws:codecommit:*:111122223333:[[codecommitRepostories]]"
            ]
        }
    ]
}
```

------



## アクション設定の例
<a name="action-reference-CodeCommit-example"></a>

### デフォルトの出力アーティファクト フォーマットの例
<a name="w2aac56c49c29b3"></a>

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

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: Artifact_MyWebsiteStack
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

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

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "Artifact_MyWebsiteStack"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

### フル クローン出力アーティファクト フォーマットの例
<a name="w2aac56c49c29b5"></a>

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

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  OutputArtifactFormat: CODEBUILD_CLONE_REF
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: SourceArtifact
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

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

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "OutputArtifactFormat": "CODEBUILD_CLONE_REF",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](tutorials-simple-codecommit.md) - このチュートリアルでは、サンプルアプリケーション仕様ファイル、サンプル CodeDeploy アプリケーションおよびデプロイグループを提供します。このチュートリアルを参照して、Amazon EC 2 インスタンスにデプロイする CodeCommit ソースを持つパイプラインを作成します。

# AWS CodeDeploy デプロイアクションリファレンス
<a name="action-reference-CodeDeploy"></a>

 AWS CodeDeploy アクションを使用して、アプリケーションコードをデプロイフリートにデプロイします。デプロイフリートは、Amazon EC2 インスタンス、オンプレミスインスタンス、またはその両方で構成することができます。

**注記**  
このリファレンストピックでは、Amazon EC2 をデプロイプラットフォームとする CodePipeline の CodeDeploy デプロイアクションを説明します。CodePipeline における Amazon Elastic Container Service から CodeDeploy の blue/green デプロイアクションのリファレンス情報については、[Amazon ECS および CodeDeploy ブルー/グリーンデプロイアクションリファレンス](action-reference-ECSbluegreen.md) を参照してください。

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

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

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

**ApplicationName**  
必須: はい  
CodeDeploy で作成したアプリケーションの名前。

**DeploymentGroupName**  
必須: はい  
CodeDeploy で作成したデプロイメントグループ。

## 入力アーティファクト
<a name="action-reference-CodeDeploy-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** CodeDeploy が判断に使用する AppSpec ファイル
  + Amazon S3 や GitHub にあるアプリケーションリビジョンから、インスタンスにインストールするもの。
  + デプロイライフサイクルイベントに応じて実行するライフサイクルイベントフック。

  AppSpec ファイルの詳細については、[[CodeDeploy AppSpec ファイルリファレンス](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html)] を参照してください。

  

## 出力アーティファクト
<a name="action-reference-CodeDeploy-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

 AWS CodeDeploy サポートを受けるには、ポリシーステートメントに以下を追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:CreateDeployment",
                "codedeploy:GetApplication",
                "codedeploy:GetDeployment",
                "codedeploy:RegisterApplicationRevision",
                "codedeploy:ListDeployments",
                "codedeploy:ListDeploymentGroups",
                "codedeploy:GetDeploymentGroup"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:application:[[codedeployApplications]]",
                "arn:aws:codedeploy:*:111122223333:deploymentgroup:[[codedeployApplications]]/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:GetDeploymentConfig"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:111122223333:deploymentconfig:[[deploymentConfigs]]"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedeploy:ListDeploymentConfigs"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

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

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: CodeDeploy
      Version: '1'
    RunOrder: 1
    Configuration:
      ApplicationName: my-application
      DeploymentGroupName: my-deployment-group
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "CodeDeploy",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "ApplicationName": "my-application",
                "DeploymentGroupName": "my-deployment-group"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: シンプルなパイプラインを作成する (S3 バケット)](tutorials-simple-s3.md) — このチュートリアルでは、ソースバケット、EC2 インスタンス、および CodeDeploy リソースを作成して、サンプルアプリケーションをデプロイする手順について説明します。次に、S3 バケットに保持されているコードを Amazon EC2 インスタンスにデプロイする CodeDeploy デプロイアクションを使用してパイプラインを構築します。
+ [チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](tutorials-simple-codecommit.md) — このチュートリアルでは、CodeCommit ソースリポジトリ、EC2 インスタンス、および CodeDeploy リソースを作成して、サンプルアプリケーションをデプロイする手順を説明します。次に、CodeCommit リポジトリから Amazon EC2 インスタンスにコードをデプロイする CodeDeploy デプロイアクションを使用してパイプラインを構築します。
+ [[CodeDeploy AppSpec ファイルリファレンス](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html)] — [*AWS CodeDeploy ユーザーガイド*] のこのリファレンスの章では CodeDeploy AppSpec ファイルのリファレンス情報と例について説明します。

# CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)
<a name="action-reference-CodestarConnectionSource"></a>

接続のソースアクションは でサポートされています AWS CodeConnections。CodeConnections を使用すると、 AWS リソースと GitHub などのサードパーティーリポジトリ間の接続を作成および管理できます。サードパーティーのソースコードリポジトリで新しいコミットが行われたときに、パイプラインを開始します。ソースアクションは、パイプラインが手動で実行されたとき、またはソースプロバイダから webhook イベントが送信されたときに、コードの変更を取得します。

パイプラインのアクションを設定して、トリガーでパイプラインを開始できる Git 設定を使用できます。トリガーを使用してフィルタリングするようにパイプラインのトリガー設定を構成する方法の詳細については、「[コードプッシュまたはプルリクエストイベントタイプを使用してトリガーを追加する](pipelines-filter.md)」を参照してください。

**注記**  
この機能は、アジアパシフィック (香港）、アジアパシフィック (ハイデラバード）、アジアパシフィック (ジャカルタ）、アジアパシフィック (メルボルン）、アジアパシフィック (大阪）、アフリカ (ケープタウン）、中東 (バーレーン）、中東 (アラブ首長国連邦）、欧州 (スペイン）、欧州 (チューリッヒ）、イスラエル (テルアビブ）、または AWS GovCloud (米国西部) の各リージョンでは使用できません。利用可能なその他のアクションについては、「[CodePipeline との製品とサービスの統合](integrations.md)」を参照してください。欧州 (ミラノ) リージョンでのこのアクションに関する考慮事項については、「[CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)](#action-reference-CodestarConnectionSource)」の注意を参照してください。

接続では、 AWS リソースを次のサードパーティーリポジトリに関連付けることができます。
+ Bitbucket Cloud (CodePipeline コンソールの **Bitbucket** プロバイダーオプションまたは CLI の `Bitbucket` プロバイダーを使用)
**注記**  
Bitbucket Cloud リポジトリへの接続を作成できます。Bitbucket サーバーなど、インストールされている Bitbucket プロバイダーのタイプはサポートされていません。
+ 
**注記**  
Bitbucket ワークスペースを使用している場合、接続を作成するには管理者アクセス権が必要です。
+ GitHub および GitHub Enterprise Cloud (CodePipeline コンソールの **GitHub (GitHub アプリ経由)** プロバイダーオプションまたは CLI の `GitHub` プロバイダーを使用)
**注記**  
リポジトリが GitHub 組織に属している場合、接続を作成するには組織の所有者であることが必要です。組織に属していないリポジトリを使用する場合は、リポジトリの所有者であることが必要です。
+ GitHub Enterprise Server (CodePipeline コンソールの **GitHub Enterprise Server** プロバイダーオプションまたは CLI の `GitHub Enterprise Server` プロバイダーを使用)
+ GitLab.com (CodePipeline コンソールの **GitLab** プロバイダーオプションまたは CLI の `GitLab` プロバイダーを使用)
**注記**  
GitLab で、自分が**所有者**ロールを持っているリポジトリへの接続を作成すると、その接続を CodePipeline などのリソースを含むリポジトリで使用できます。グループ内のリポジトリでは、グループの所有者である必要はありません。
+ GitLab (エンタープライズエディションまたはコミュニティエディション) のセルフマネージドインストール (CodePipeline コンソールの **GitLab セルフマネージド**プロバイダーオプションまたは CLI の `GitLabSelfManaged` プロバイダーを使用)

**注記**  
各接続は、そのプロバイダーのすべてのリポジトリをサポートします。プロバイダーの種類ごとに新しい接続を作成する必要があります。

Connections により、パイプラインはサードパーティープロバイダーのインストールアプリを通じてソースの変更を検出することができます。例えば、webhooks は GitHub イベントタイプのサブスクライブに使用され、組織、リポジトリ、または GitHub アプリにインストールできます。接続によって、GitHub プッシュタイプのイベントをサブスクライブするリポジトリ webhook が GitHub アプリにインストールされます。

コードの変更が検出された後は、後続のアクションにコードを渡すための次のオプションがあります。
+ デフォルト: 他の既存の CodePipeline ソースアクションと同様に、`CodeStarSourceConnection` はコミットの浅いコピーを含む ZIP ファイルを出力できます。
+ フルクローン: `CodeStarSourceConnection` は、後続のアクションのためにリポジトリへの URL リファレンスを出力するように設定することも可能です。

  現在、Git URL リファレンスは、リポジトリと関連する Git メタデータをクローンするためにダウンストリーム CodeBuild アクションでのみ使用できます。Git URL リファレンスを CodeBuild 以外のアクションに渡そうとすると、エラーが発生します。

CodePipeline は、接続の作成時に AWS Connector インストールアプリをサードパーティーアカウントに追加するように求めます。`CodeStarSourceConnection` アクションを介して接続する前に、サードパーティープロバイダのアカウントとリポジトリを作成しておく必要があります。

**注記**  
 AWS CodeStar 接続を使用するために必要なアクセス許可を持つロールにポリシーを作成またはアタッチするには、[Connections アクセス許可リファレンス](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)を参照してください。CodePipeline サービスロールが作成された日時によっては、 AWS CodeStar 接続をサポートするためにアクセス許可を更新する必要がある場合があります。手順については、「[CodePipeline サービスロールにアクセス許可を追加する](how-to-custom-role.md#how-to-update-role-new-services)」を参照してください。

**注記**  
欧州 (ミラノ) で接続を使用するには AWS リージョン、以下を行う必要があります。  
リージョン固有のアプリをインストールする
リージョンを有効にする
このリージョン固有のアプリで、欧州 (ミラノ) リージョンの接続をサポートします。サードパーティープロバイダーのサイトで公開されているアプリであり、他のリージョンの接続をサポートする既存のアプリとは別のものです。このアプリをインストールすることで、このリージョンでのみサービスとデータを共有することをサードパーティープロバイダーに許可します。アプリをアンインストールすることでいつでもアクセス許可を取り消すことができます。  
リージョンを有効にしない限り、サービスはデータを処理または保存しません。このリージョンを有効にすることで、データを処理および保存するアクセス許可をサービスに付与したことになります。  
リージョンが有効になっていなくても、リージョン固有のアプリがインストールされたままであれば、サードパーティープロバイダーはお客様のデータをサービスと共有できます。したがって、リージョンを無効にしたら、必ずアプリをアンインストールしてください。詳細については、「[リージョンの有効化](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)」を参照してください。

**Topics**
+ [アクションタイプ](#action-reference-CodestarConnectionSource-type)
+ [設定パラメータ](#action-reference-CodestarConnectionSource-config)
+ [入力アーティファクト](#action-reference-CodestarConnectionSource-input)
+ [出力アーティファクト](#action-reference-CodestarConnectionSource-output)
+ [出力変数](#action-reference-CodestarConnectionSource-variables)
+ [サービスロールのアクセス許可: CodeConnections アクション](#edit-role-connections)
+ [アクションの宣言](#action-reference-CodestarConnectionSource-example)
+ [インストールアプリケーションのインストールと接続の作成](#action-reference-CodestarConnectionSource-auth)
+ [関連情報](#action-reference-CodestarConnectionSource-links)

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

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

****ConnectionArn****  
必須: はい  
ソースプロバイダに対して設定および認証された接続 ARN。

****FullRepositoryId****  
必須: はい  
ソースの変更が検出される所有者とリポジトリの名前。  
例: `some-user/my-repo`  
**FullRepositoryId** 値の大文字と小文字は正しく保持する必要があります。例えば、ユーザー名が `some-user` で、リポジトリ名が `My-Repo` の場合、**FullRepositoryId** の推奨値は `some-user/My-Repo` です。

****BranchName****  
必須: はい  
ソースの変更が検出されるブランチの名前。

****OutputArtifactFormat****  
必須: いいえ  
出力アーティファクト形式を指定します。`CODEBUILD_CLONE_REF` または `CODE_ZIP` のいずれかになります。指定しない場合、デフォルトの `CODE_ZIP` が使用されます。  
`CODEBUILD_CLONE_REF` のオプションは、CodeBuild のダウンストリームアクションでのみ使用可能です。  
このオプションを選択した場合は、[Bitbucket、GitHub、GitHub Enterprise Server、または GitLab.com に接続するための CodeBuild GitClone アクセス許可を追加します。](troubleshooting.md#codebuild-role-connections) で示されるように CodeBuild プロジェクトサービスロールの許可を更新する必要があります。[**フルクローン**] オプションを使用する方法を示すチュートリアルについては、[チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する](tutorials-github-gitclone.md) を参照してください。

**DetectChanges**  
 必須: いいえ  
設定したリポジトリとブランチで新しいコミットが行われたときに、パイプラインを自動的にスタートするように制御します。未指定の場合、デフォルト値は `true` となり、フィールドはデフォルトで表示されません。このパラメータの有効な値:  
+ `true`: CodePipeline は、新しいコミットでパイプラインを自動的に開始します。
+ `false`: CodePipeline は新しいコミットでパイプラインを開始しません。

## 入力アーティファクト
<a name="action-reference-CodestarConnectionSource-input"></a>
+ **アーティファクトの数:** `0`
+ **説明:** 入力アーティファクトは、このアクションタイプには適用されません。

## 出力アーティファクト
<a name="action-reference-CodestarConnectionSource-output"></a>
+ **アーティファクトの数:** `1` 
+ **説明:** レポジトリから生成されたアーティファクトは、`CodeStarSourceConnection` アクションに対する出力アーティファクトです。ソースコードのコミット ID は、パイプライン実行のトリガーとなるソースリビジョンとして、CodePipeline に表示されます。このアクションの出力アーティファクトは、次で構成できます。
  + パイプライン実行のソースレビジョンとして指定されたコミットで設定されたレポジトリおよびブランチのコンテンツを含む ZIP ファイル。
  + リポジトリへの URL リファレンスを含む JSON ファイル。これで下流のアクションが Git コマンドを直接実行できるようになります。
**重要**  
このオプションは、CodeBuild ダウンストリームアクションでのみ使用できます。  
 このオプションを選択した場合は、[CodePipeline のトラブルシューティング](troubleshooting.md) で示されるように CodeBuild プロジェクトサービスロールの権限を更新する必要があります。[**フルクローン**] オプションを使用する方法を示すチュートリアルについては、[チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する](tutorials-github-gitclone.md) を参照してください。

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

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

AuthorDate  
コミットが認証された日付 (タイムスタンプ形式)。

BranchName  
ソースが変更された リポジトリのブランチの名前。

CommitId  
パイプライン実行をトリガーした コミット ID。

CommitMessage  
パイプライン実行をトリガーしたコミットに関連付けられた説明メッセージ (存在する場合)。

ConnectionArn  
ソースプロバイダに対して設定および認証された接続 ARN。

FullRepositoryName  
パイプラインをトリガーしたコミットが行われた リポジトリの名前。

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

CodeConnections の場合、Bitbucket Cloud などの接続を使用するソースとのパイプラインを作成するには、次のアクセス許可が必要です。

```
{
    "Effect": "Allow",
    "Action": [
        "codeconnections:UseConnection"
    ],
    "Resource": "resource_ARN"
},
```

接続に関する IAM アクセス許可の詳細については、「[Connections アクセス許可リファレンス](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)」を参照してください。

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

次の例では、`CODE_ZIP` ARN との接続で出力アーティファクトが `arn:aws:codestar-connections:region:account-id:connection/connection-id` のデフォルト ZIP 形式に設定されています。

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

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: AWS
      Category: Source
      Provider: CodeStarSourceConnection
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      ConnectionArn: "arn:aws:codestar-connections:region:account-id:connection/connection-id"
      FullRepositoryId: "some-user/my-repo"
      BranchName: "main"
      OutputArtifactFormat: "CODE_ZIP"
    Name: ApplicationSource
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "AWS",
                "Category": "Source",
                "Provider": "CodeStarSourceConnection"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "ConnectionArn": "arn:aws:codestar-connections:region:account-id:connection/connection-id",
                "FullRepositoryId": "some-user/my-repo",
                "BranchName": "main",
                "OutputArtifactFormat": "CODE_ZIP"
            },
            "Name": "ApplicationSource"
        }
    ]
},
```

------

## インストールアプリケーションのインストールと接続の作成
<a name="action-reference-CodestarConnectionSource-auth"></a>

コンソールを使用してサードパーティーリポジトリに新しい接続を初めて追加するときは、リポジトリへの CodePipeline アクセスを認可する必要があります。サードパーティーコードリポジトリを作成したアカウントに接続するためのインストールアプリを選択または作成します。

 AWS CLI または CloudFormation テンプレートを使用する場合は、インストールハンドシェイクをすでに通過している接続の接続 ARN を指定する必要があります。提供しないと、パイプラインはトリガーされません。

**注記**  
`CodeStarSourceConnection` ソースアクションの場合、webhook を設定したり、ポーリングをデフォルトにする必要はありません。接続アクションは、ソースの変更検出を管理します。

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS::CodeStarConnections::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html) – AWS CodeStar Connections リソースの CloudFormation テンプレートリファレンスは、 CloudFormation テンプレート内の接続のパラメータと例を提供します。
+ [AWS CodeStar Connections API リファレンス](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/Welcome.html) – *AWS CodeStar Connections API リファレンス*は、使用可能な接続アクションのリファレンス情報を提供します。
+ 接続でサポートされているソースアクションでパイプラインを作成するステップについては、以下を参照してください。
  + Bitbucket Cloud の場合は、コンソールの [**Bitbucket**] オプションまたは CLI の `CodestarSourceConnection` アクションを使用します。「[Bitbucket Cloud への接続](connections-bitbucket.md)」を参照してください。
  + GitHub および GitHub Enterprise Cloud の場合、コンソールの [**GitHub**] プロバイダオプションまたは `CodestarSourceConnection` CLI のアクションを使用します。「[GitHub コネクション](connections-github.md)」を参照してください。
  + GitHub Enterprise Server の場合は、コンソールの [**GitHub Enterprise Server**] プロバイダオプション、または `CodestarSourceConnection` CLI のアクションを使用します。「[GitHub Enterprise Server 接続](connections-ghes.md)」を参照してください。
  + GitLab.com の場合は、コンソールの **GitLab** プロバイダーオプション、または CLI の `CodestarSourceConnection` アクションと`GitLab` プロバイダーを使用します。「[GitLab.com への接続](connections-gitlab.md)」を参照してください。
+ Bitbucket ソースと CodeBuild アクションを使用してパイプラインを作成する スタートアップチュートリアルを表示するには、[[接続をはじめよう](https://docs.aws.amazon.com/dtconsole/latest/userguide/getting-started-connections.html)] を参照してください。
+ GitHub リポジトリに接続し、ダウンストリーム CodeBuild アクションで [**フルクローン**] オプションを使用する方法を紹介したチュートリアルは、[チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する](tutorials-github-gitclone.md) を参照してください。

# コマンドアクションリファレンス
<a name="action-reference-Commands"></a>

コマンドアクションを使用すると、仮想コンピューティングインスタンスでシェルコマンドを実行できます。アクションを実行すると、アクション設定で指定したコマンドが別のコンテナで実行されます。CodeBuild アクションへの入力アーティファクトとして指定されたすべてのアーティファクトは、コマンドを実行するコンテナ内で使用できます。このアクションでは、CodeBuild プロジェクトを最初に作成せずにコマンドを指定できます。詳細については、「*AWS CodePipeline API リファレンス*」の「[ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html)」と「[OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html)」を参照してください。

**重要**  
このアクションでは、CodePipeline マネージド CodeBuild コンピューティングを使用して、ビルド環境でコマンドを実行します。コマンドアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

**注記**  
コマンドアクションは V2 タイプのパイプラインでのみ使用できます。

**Topics**
+ [コマンドアクションに関する考慮事項](#action-reference-Commands-considerations)
+ [サービスロールのポリシーのアクセス許可](#action-reference-Commands-policy)
+ [アクションタイプ](#action-reference-Commands-type)
+ [設定パラメータ](#action-reference-Commands-config)
+ [入力アーティファクト](#action-reference-Commands-input)
+ [出力アーティファクト](#action-reference-Commands-output)
+ [環境変数](#action-reference-Commands-envvars)
+ [サービスロールのアクセス許可: コマンドアクション](#edit-role-Commands)
+ [アクションの宣言 (例)](#action-reference-Commands-example)
+ [関連情報](#action-reference-Commands-links)

## コマンドアクションに関する考慮事項
<a name="action-reference-Commands-considerations"></a>

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

## サービスロールのポリシーのアクセス許可
<a name="action-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",
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
   ]
}
```

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

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

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

**コマンド**  
必須: はい  
`Commands` アクションで実行するシェルコマンドを指定できます。コンソールでは、各コマンドを個別の行に入力します。CLI では、コマンドを個別の文字列として入力します。  
複数行形式はサポートされていないため、エラーメッセージが表示されます。**[コマンド]** フィールドにコマンドを入力するには、単一行形式を使用する必要があります。
EnvironmentType と ComputeType の値は CodeBuild の値と一致します。使用可能なタイプのサブセットがサポートされています。詳細については、「[ビルド環境コンピューティングタイプ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)」を参照してください。

**EnvironmentType**  
必須: いいえ  
コマンドアクションをサポートするビルド環境の OS イメージ。ビルド環境の有効な値は次のとおりです。  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
**[EnvironmentType]** を選択すると、**[ComputeType]** フィールドでその OS のコンピューティングタイプが許可されます。このアクションで利用可能な CodeBuild コンピューティングタイプの詳細については、「CodeBuild ユーザーガイド」の「[ビルド環境のコンピューティングモードおよびタイプ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)」リファレンスを参照してください。  
指定しない場合、コンピューティングはビルド環境に対してデフォルトで次のようになります。  
+ **コンピューティングタイプ: **BUILD\$1GENERAL1\$1SMALL
+ **環境タイプ:** LINUX\$1CONTAINER

**ComputeType**  
必須: いいえ  
EnvironmentType の選択に基づいて、コンピューティングタイプを指定できます。以下はコンピューティングで使用可能な値ですが、使用可能なオプションは OS によって異なる場合があります。  
+ BUILD\$1GENERAL1\$1SMALL
+ BUILD\$1GENERAL1\$1MEDIUM
+ BUILD\$1GENERAL1\$1LARGE
一部のコンピューティングタイプは、特定の環境タイプと互換性がありません。例えば、WINDOWS\$1SERVER\$12022\$1CONTAINER は BUILD\$1GENERAL1\$1SMALL と互換性がありません。互換性のない組み合わせを使用すると、アクションは失敗し、ランタイムエラーが生成されます。

**outputVariables**  
必須: いいえ  
エクスポートする環境内の変数の名前を指定します。CodeBuild 環境変数のリファレンスについては、「*CodeBuild ユーザーガイド*」の「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

**ファイル**  
必須: いいえ  
エクスポートするファイルは、アクションの出力アーティファクトとして指定できます。  
サポートされているファイル形式は、CodeBuild ファイルパターンと同じです。例えば、すべてのファイルの場合は「`**/`」と入力します。詳細については、「*CodeBuild ユーザーガイド*」の「[CodeBuild のビルド仕様リファレンス](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files)」を参照してください。  

![\[コマンドアクションを使用した新しいパイプラインの [アクションを編集] ページ\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/commands-edit-screen.png)


**VpcId**  
必須: いいえ  
リソースの VPC ID。

**サブネット**  
必須: いいえ  
VPC のサブネット。このフィールドは、コマンドが VPC 内のリソースに接続する必要がある場合に必要です。

**SecurityGroupIds**  
必須: いいえ  
VPC のセキュリティグループ。このフィールドは、コマンドが VPC 内のリソースに接続する必要がある場合に必要です。

以下は、環境タイプとコンピューティングタイプの設定フィールドと環境変数の例を示すアクションの JSON の例です。

```
 {
            "name": "Commands1",
            "actionTypeId": {
              "category": "Compute",
              "owner": "AWS",
              "provider": "Commands",
              "version": "1"
            },
            "inputArtifacts": [
              {
                "name": "SourceArtifact"
              }
            ],
            "commands": [
              "ls",
              "echo hello",
              "echo $BEDROCK_TOKEN",
            ],
            "configuration": {
              "EnvironmentType": "LINUX_CONTAINER",
              "ComputeType": "BUILD_GENERAL1_MEDIUM"
            },
            "environmentVariables": [
              {
                "name": "BEDROCK_TOKEN",
                "value": "apiTokens:bedrockToken",
                "type": "SECRETS_MANAGER"
              }
            ],
            "runOrder": 1
          }
```

## 入力アーティファクト
<a name="action-reference-Commands-input"></a>
+ **アーティファクトの数:** `1 to 10`

## 出力アーティファクト
<a name="action-reference-Commands-output"></a>
+ **アーティファクトの数:** `0 to 1` 

## 環境変数
<a name="action-reference-Commands-envvars"></a>

**Key**  
キーと値の環境変数ペアのキー (`BEDROCK_TOKEN` など)。

**値**  
キーと値のペアの値 (`apiTokens:bedrockToken` など)。値は、パイプラインアクションまたはパイプライン変数からの出力変数でパラメータ化できます。  
`SECRETS_MANAGER` タイプを使用する場合、この値は Secrets Manager に既に保存しているシー AWS クレットの名前である必要があります。

**タイプ**  
環境変数値の使用タイプを指定します。この値は `PLAINTEXT` または `SECRETS_MANAGER` となります。値が `SECRETS_MANAGER` の場合、`EnvironmentVariable` 値に Secrets リファレンスを指定します。指定しない場合、この値はデフォルトで `PLAINTEXT` になります。  
機密情報、特に AWS 認証情報を保存するために*プレーンテキスト*の環境変数を使用することは強くお勧めしません。CodeBuild コンソールまたは AWS CLIを使用すると、*plaintext* 環境変数はプレーンテキストで表示されます。機密の値の場合は、代わりに `SECRETS_MANAGER` タイプを使用することをお勧めします。

**注記**  
環境変数の設定に `name`、`value`、および `type` を入力する場合 (特に環境変数に CodePipeline の出力変数の構文が含まれている場合) は、設定の値フィールドの 1000 文字制限を超えないようにしてください。この制限を超えると、検証エラーが返されます。

環境変数を示すアクション宣言の例については、「[設定パラメータ](#action-reference-Commands-config)」を参照してください。

**注記**  
`SECRETS_MANAGER` タイプは、コマンドアクションでのみサポートされます。
コマンドアクションで参照されるシークレットは、CodeBuild のようなビルドログで編集されます。ただし、パイプラインへの**編集**アクセスを持つパイプラインユーザーは、コマンドを変更することで、これらのシークレット値に引き続きアクセスできる可能性があります。
SecretsManager を使用するには、パイプラインサービスロールに次のアクセス許可を追加する必要があります。  

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetSecretValue"
              ],
              "Resource": [
                  "SECRET_ARN"
              ]
          }
  ```

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

コマンドがサポートされるように、以下をポリシーステートメントに追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:iam::*:role/Service*",
                "arn:aws:iam::*:role/Service*"
            ]
        }
    ]
}
```

------

## アクションの宣言 (例)
<a name="action-reference-Commands-example"></a>

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

```
name: Commands_action
actionTypeId:
  category: Compute
  owner: AWS
  provider: Commands
  version: '1'
runOrder: 1
configuration: {}
commands:
- ls
- echo hello
- 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}'
outputArtifacts:
- name: BuildArtifact
  files:
  - **/
inputArtifacts:
- name: SourceArtifact
outputVariables:
- AWS_DEFAULT_REGION
region: us-east-1
namespace: compute
```

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

```
{
    "name": "Commands_action",
    "actionTypeId": {
        "category": "Compute",
        "owner": "AWS",
        "provider": "Commands",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {},
    "commands": [
        "ls",
        "echo hello",
        "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}"
    ],
    "outputArtifacts": [
        {
            "name": "BuildArtifact",
            "files": [
                "**/"
            ]
        }
    ],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "outputVariables": [
        "AWS_DEFAULT_REGION"
    ],
    "region": "us-east-1",
    "namespace": "compute"
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [チュートリアル: コンピューティングを使用してコマンドを実行するパイプラインを作成する (V2 タイプ)](tutorials-commands.md) – このチュートリアルでは、コマンドアクションを使用したサンプルパイプラインを提供します。

# AWS Device Farm テストアクションリファレンス
<a name="action-reference-DeviceFarm"></a>

パイプラインでは、 がデバイス上でアプリケーションを実行およびテスト AWS Device Farm するために使用するテストアクションを設定できます。Device Farm は、デバイスのテストプールとテストフレームワークを使用して、特定のデバイス上でアプリケーションをテストします。Device Farm アクションでサポートされているテストフレームワークのタイプについては、[AWS Device Farm でのテストタイプの操作](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)」を参照してください。

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

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

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

**AppType**  
必須: はい  
テストする OS とアプリケーションのタイプ。有効な値のリストを次に示します。  
+ `iOS`
+ `Android`
+ `Web`

**ProjectId**  
必須: はい  
Device Farm プロジェクト ID。  
プロジェクト ID を見つけるには、Device Farm コンソールでプロジェクトを選択します。ブラウザで、新しいプロジェクトの URL をコピーします。URL には、プロジェクト ID が含まれます。プロジェクト ID は、`projects/` 以降の URL の値です。次の例で、プロジェクト ID は `eec4905f-98f8-40aa-9afc-4c1cfexample` です。  

```
https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
```

**アプリケーション**  
必須: はい  
入力アーティファクト内のアプリケーションファイルの名前と場所。例: `s3-ios-test-1.ipa`

**TestSpec**  
条件付き: はい  
入力アーティファクト内のテストスペック定義ファイルの場所。これはカスタムモードのテストに必要です。

**DevicePoolArn**  
必須: はい  
Device Farm デバイスプールの ARN。  
上位デバイスの ARNs など、プロジェクトの使用可能なデバイスプール ARN を取得するには、 CLI AWS を使用して次のコマンドを入力します。  

```
aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
```

**TestType**  
必須: はい  
テストでサポートされるテストフレームワークを指定します。`TestType` の有効な値のリストを次に示します。  
+ **APPIUM\$1JAVA\$1JUNIT**
+ **APPIUM\$1JAVA\$1TESTNG**
+ **APPIUM\$1NODE**
+ **APPIUM\$1RUBY**
+ **APPIUM\$1PYTHON**
+ **APPIUM\$1WEB\$1JAVA\$1JUNIT**
+ **APPIUM\$1WEB\$1JAVA\$1TESTNG**
+ **APPIUM\$1WEB\$1NODE**
+ **APPIUM\$1WEB\$1RUBY**
+ **APPIUM\$1WEB\$1PYTHON**
+ **BUILTIN\$1FUZZZ**
+ **INSTRUMENTATION**
+ **XCTEST**
+ **XCTEST\$1UI**
以下のテストタイプは、CodePipeline のアクション `WEB_PERFORMANCE_PROFILE`、`REMOTE_ACCESS_RECORD`、および `REMOTE_ACCESS_REPLAY` ではサポートされていません。
Device Farm のテストタイプついては、[[AWS Device Farm でのテストタイプの操作](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)] を参照してください。

**RadioBluetoothEnabled**  
必須: いいえ  
テストの開始時に Bluetooth を有効にするかどうかを示すブール値。

**RecordAppPerformanceData**  
必須: いいえ  
テスト中に CPU、FPS、メモリパフォーマンスなどのデバイスパフォーマンスデータを記録するかどうかを示すブール値。

**RecordVideo**  
必須: いいえ  
テスト中にビデオを記録するかどうかを示すブール値。

**RadioWifiEnabled**  
必須: いいえ  
テストの開始時に Wi-Fi を有効にするかどうかを示すブール値。

**RadionFCenabled**  
必須: いいえ  
テストの開始時に NFC を有効にするかどうかを示すブール値。

**RadioGpsEnabled**  
必須: いいえ  
テストの開始時に GPS を有効にするかどうかを示すブール値。

**テスト**  
必須: いいえ  
ソースの場所にあるテスト定義ファイルの名前とパス。パスは、テストの入力アーティファクトのルートに関連します。

**FuzzEventCount**  
必須: いいえ  
ファズテストが実行するユーザーインターフェイスイベントの数で、1 から 10000 の間で指定します。

**FuzzEventThrottle**  
必須: いいえ  
ファズテストが次のユーザーインターフェイスイベントを実行する前に待機するミリ秒数で、1 から 1000 の間で指定します。

**FuzzRandomizerSeed**  
必須: いいえ  
ユーザインタフェースイベントをランダム化するために使用するファズテストのシード。後続のファズテストに同じ番号を使用すると、同じイベントシーケンスになります。

**CustomHostMachineArtifacts**  
必須: いいえ  
ホストマシン上でカスタムアーティファクトが格納される場所。

**CustomDeviceArtifacts**  
必須: いいえ  
カスタムアーティファクトが保存されるデバイス上の場所。  


**UnmeteredDevicesOnly**  
必須: いいえ  
この手順でテストを実行するときに、測定されていないデバイスのみを使用するかどうかを示すブール値。

**JobTimeoutMinutes**  
必須: いいえ  
テスト実行がタイムアウトになるまでにデバイスごとに実行される分数。

**Latitude (緯度)**  
必須: いいえ  
デバイスの緯度は、地理座標系の度数で表されます。

**Longitude (経度)**  
必須: いいえ  
地理座標系の度数で表されたデバイスの経度。

## 入力アーティファクト
<a name="action-reference-DeviceFarm-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** テストアクションで使用可能にするアーティファクトのセット。Device Farm は、ビルドされたアプリケーションとテスト定義を使用するために検索します。

## 出力アーティファクト
<a name="action-reference-DeviceFarm-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた次のアクセス許可が必要です。例えば、以下をポリシーステートメントに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "devicefarm:ListProjects",
        "devicefarm:ListDevicePools",
        "devicefarm:GetRun",
        "devicefarm:GetUpload",
        "devicefarm:CreateUpload",
        "devicefarm:ScheduleRun"
    ],
    "Resource": "resource_ARN"
},
```

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

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

```
Name: Test
Actions:
  - Name: TestDeviceFarm
    ActionTypeId: null
    category: Test
    owner: AWS
    provider: DeviceFarm
    version: '1'
RunOrder: 1
Configuration:
  App: s3-ios-test-1.ipa
  AppType: iOS
  DevicePoolArn: >-
    arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5
  ProjectId: eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE
  TestType: APPIUM_PYTHON
  TestSpec: example-spec.yml
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
Region: us-west-2
```

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

```
{
    "Name": "Test",
    "Actions": [
        {
            "Name": "TestDeviceFarm",
            "ActionTypeId": null,
            "category": "Test",
            "owner": "AWS",
            "provider": "DeviceFarm",
            "version": "1"
        }
    ],
    "RunOrder": 1,
    "Configuration": {
        "App": "s3-ios-test-1.ipa",
        "AppType": "iOS",
        "DevicePoolArn": "arn:aws:devicefarm:us-west-2::devicepool:0EXAMPLE-d7d7-48a5-ba5c-b33d66efa1f5",
        "ProjectId": "eec4905f-98f8-40aa-9afc-4c1cfEXAMPLE",
        "TestType": "APPIUM_PYTHON",
        "TestSpec": "example-spec.yml"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ],
    "Region": "us-west-2"
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [[Device Farm でのテストタイプの実行](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types.html)] - [*Device Farm 開発者ガイド*] のこのリファレンス章では、Device Farm でサポートされる Android、iOS、および Web アプリケーションのテストフレームワークについて詳しく説明します。
+ [[Device Farm のアクション](https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html)] - [*Device Farm API リファレンス*] の API 呼び出しとパラメータは、Device Farm プロジェクトの操作に役立ちます。
+ [チュートリアル: を使用して Android アプリを構築およびテストするパイプラインを作成する AWS Device Farm](tutorials-codebuild-devicefarm.md)— このチュートリアルでは、CodeBuild と Device Farm を使用して Android アプリケーションをビルドおよびテストするパイプラインを GitHub ソースで作成するためのサンプルビルド仕様ファイルとサンプルアプリケーションを提供します。
+ [チュートリアル: で iOS アプリをテストするパイプラインを作成する AWS Device Farm](tutorials-codebuild-devicefarm-S3.md) — このチュートリアルでは、Device Farm でビルドされた iOS アプリケーションをテストする Amazon S3 ソースでパイプラインを作成するためのサンプルアプリケーションを提供します。

# Elastic Beanstalk のデプロイアクションリファレンス
<a name="action-reference-Beanstalk"></a>

Elastic Beanstalk は、ウェブアプリケーションのデプロイとスケーリングに使用される AWS 内のプラットフォームです。Elastic Beanstalk のアクションを使用して、デプロイ環境にアプリケーションコードをデプロイします。

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

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

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

**ApplicationName**  
必須: はい  
Elastic Beanstalk に作成したアプリケーションの名前。

**EnvironmentName**  
必須: はい  
Elastic Beanstalk に作成した環境の名前。環境は、アプリケーションバージョンを実行する AWS リソースのコレクションです。各環境が実行するのは一度に 1 つのアプリケーションバージョンだけですが、同じアプリケーションバージョンや複数の異なるアプリケーションバージョンを多数の環境で同時に実行できます。

## 入力アーティファクト
<a name="action-reference-Beanstalk-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** アクションの入力アーティファクト。

## 出力アーティファクト
<a name="action-reference-Beanstalk-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

## サービスロールのアクセス許可: `ElasticBeanstalk` のデプロイアクション
<a name="edit-role-beanstalk"></a>

Elastic Beanstalk では、`ElasticBeanstalk` デプロイアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可は次のとおりです。

```
{
    "Effect": "Allow",
    "Action": [
        "elasticbeanstalk:*",
        "ec2:*",
        "elasticloadbalancing:*",
        "autoscaling:*",
        "cloudwatch:*",
        "s3:*",
        "sns:*",
        "cloudformation:*",
        "rds:*",
        "sqs:*",
        "ecs:*"
    ],
    "Resource": "resource_ARN"
},
```

**注記**  
リソースポリシーのワイルドカードは、アクセスを制限するアカウントのリソースに置き換える必要があります。最小権限アクセスを付与するポリシーの作成の詳細については、[https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) を参照してください。

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

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

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: ElasticBeanstalk
      Version: '1'
    RunOrder: 1
    Configuration:
      ApplicationName: my-application
      EnvironmentName: my-environment
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
    Region: us-west-2
    Namespace: DeployVariables
```

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

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "ElasticBeanstalk",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "ApplicationName": "my-application",
                "EnvironmentName": "my-environment"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
},
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [Flask アプリケーションを Elastic Beanstalk にデプロイする](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html) – このチュートリアルでは、サンプル Flask アプリケーションを使用して Elastic Beanstalk でアプリケーションと環境リソースを作成する方法について説明します。その後、ソースリポジトリから Elastic Beanstalk 環境にアプリケーションをデプロイする Elastic Beanstalk デプロイアクションを使用してパイプラインを構築できます。

# Amazon Inspector `InspectorScan` 呼び出しアクションリファレンス
<a name="action-reference-InspectorScan"></a>

Amazon Inspector は、ソフトウェアの脆弱性や意図しないネットワークの露出についてワークロードを自動的に検出し、継続的にスキャンする脆弱性管理サービスです。CodePipeline の `InspectorScan` アクションは、オープンソースコードのセキュリティの脆弱性の検出と修正を自動化します。このアクションは、セキュリティスキャン機能を備えたマネージド型のコンピューティングアクションです。InspectorScan は、GitHub や Bitbucket Cloud などのサードパーティーのリポジトリ内のアプリケーションソースコード、またはコンテナアプリケーションのイメージで使用できます。アクションは、設定した脆弱性レベルとアラートをスキャンしてレポートします。

**重要**  
このアクションでは、CodePipeline マネージド CodeBuild コンピューティングを使用して、ビルド環境でコマンドを実行します。このアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

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

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

例:

```
            {
                "Category": "Invoke",
                "Owner": "AWS",
                "Provider": "InspectorScan",
                "Version": "1"
            },
```

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

**InspectorRunMode**  
(必須) スキャンモードを示す文字列。有効な値は `SourceCodeScan | ECRImageScan` です。

**ECRRepositoryName**  
イメージがプッシュされた Amazon ECR リポジトリの名前。

**ImageTag**  
イメージに使用するタグ。

このアクションのパラメータは、指定した脆弱性のレベルをスキャンします。脆弱性のしきい値には、次のレベルがあります。

**CriticalThreshold **  
CodePipeline がアクションを失敗させる必要のある、ソースで検出された重大な脆弱性の数。

**HighThreshold **  
CodePipeline がアクションを失敗させる必要のある、ソースで検出された重要度が高い脆弱性の数。

**MediumThreshold**  
CodePipeline がアクションを失敗させる必要のある、ソースで検出された重要度が中程度の脆弱性の数。

**LowThreshold **  
CodePipeline がアクションを失敗させる必要のある、ソースで検出された重要度が低い脆弱性の数。

![\[\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/inspectorscan-edit.png)


## 入力アーティファクト
<a name="action-reference-InspectorScan-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** 脆弱性をスキャンするソースコード。スキャンが ECR リポジトリ向けの場合、この入力アーティファクトは必要ありません。

## 出力アーティファクト
<a name="action-reference-InspectorScan-output"></a>
+ **アーティファクトの数:** `1`
+ **説明:** ソフトウェア部品表 (SBOM) ファイル形式のソースの脆弱性の詳細。

## 出力変数
<a name="w2aac56c62c19"></a>

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**HighestScannedSeverity **  
スキャンからの最も高い重要度の出力。有効な値は `medium | high | critical` です。

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

`InspectorScan` アクションをサポートするには、以下をポリシーステートメントに追加します。

```
{
        "Effect": "Allow",
        "Action": "inspector-scan:ScanSbom",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "ecr:BatchCheckLayerAvailability"
        ],
        "Resource": "resource_ARN"
    },
```

さらに、Commands アクションにまだ追加されていない場合は、CloudWatch ログを表示するために、サービスロールに次のアクセス許可を追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream", 
        "logs:PutLogEvents"
    ],
    "Resource": "resource_ARN"
},
```

**注記**  
サービスロールポリシーステートメントでリソースベースのアクセス許可を使用して、アクセス許可の範囲をパイプラインリソースレベルに絞り込みます。

## アクションの宣言
<a name="w2aac56c62c23"></a>

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

```
name: Scan
actionTypeId:
  category: Invoke
  owner: AWS
  provider: InspectorScan
  version: '1'
runOrder: 1
configuration:
  InspectorRunMode: SourceCodeScan
outputArtifacts:
- name: output
inputArtifacts:
- name: SourceArtifact
region: us-east-1
```

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

```
{
                        "name": "Scan",
                        "actionTypeId": {
                            "category": "Invoke",
                            "owner": "AWS",
                            "provider": "InspectorScan",
                            "version": "1"
                        },
                        "runOrder": 1,
                        "configuration": {
                            "InspectorRunMode": "SourceCodeScan"
                        },
                        "outputArtifacts": [
                            {
                                "name": "output"
                            }
                        ],
                        "inputArtifacts": [
                            {
                                "name": "SourceArtifact"
                            }
                        ],
                        "region": "us-east-1"
                    },
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ Amazon Inspector の詳細については、「[Amazon Inspector ユーザーガイド](https://aws.amazon.com/inspector/)」を参照してください。

# AWS Lambda アクションリファレンスを呼び出す
<a name="action-reference-Lambda"></a>

パイプラインのアクションとして Lambda 関数を実行できます。この関数への入力であるイベントオブジェクトを使用して、関数はアクション設定、入力アーティファクトの場所、出力アーティファクトの場所、およびアーティファクトへのアクセスに必要なその他の情報にアクセスできます。Lambda 呼び出し関数に渡されるイベントの例については、[JSON イベントの例](#action-reference-Lambda-event) を参照してください。Lambda 関数の実装の一部として、`[PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)` または `[PutJobFailureResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)` への呼び出しが必要です。それ以外の場合、このアクションの実行は、アクションがタイムアウトするまでハングします。アクションの出力アーティファクトを指定する場合、関数の実装の一部として S3 バケットにアップロードする必要があります。

**重要**  
CodePipeline が Lambda に送信する JSON イベントをログに記録しないでください。これにより、CloudWatch Logs にユーザー認証情報が記録される可能性があるためです。CodePipeline ロールは JSON イベントを使用して、一時的な認証情報を `artifactCredentials` フィールドの Lambda に渡します。イベント例については、「[JSON イベントの例](actions-invoke-lambda-function.md#actions-invoke-lambda-function-json-event-example)」を参照してください。

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

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

**FunctionName**  
必須: はい  
`FunctionName` は、Lambda で作成された関数の名前です。

**UserParameters**  
必須: いいえ  
Lambda 関数による入力として処理できる文字列。

## 入力アーティファクト
<a name="action-reference-Lambda-input"></a>
+ **アーティファクトの数:** `0 to 5`
+ **説明:** Lambda 関数で使用できるようにするアーティファクトのセット。

## 出力アーティファクト
<a name="action-reference-Lambda-output"></a>
+ **アーティファクトの数:** `0 to 5` 
+ **説明:** Lambda 関数によって出力として生成されるアーティファクトのセット。

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

このアクションは、変数として [PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html) リクエストのセクション `outputVariables` に含まれるすべてのキー値のペアを生成します。

CodePipeline における変数の詳細については、[変数リファレンス](reference-variables.md) を参照してください。

## アクション設定の例
<a name="action-reference-Lambda-example"></a>

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

```
Name: Lambda
Actions:
  - Name: Lambda
    ActionTypeId:
      Category: Invoke
      Owner: AWS
      Provider: Lambda
      Version: '1'
    RunOrder: 1
    Configuration:
      FunctionName: myLambdaFunction
      UserParameters: 'http://192.0.2.4'
    OutputArtifacts: []
    InputArtifacts: []
    Region: us-west-2
```

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

```
{
    "Name": "Lambda",
    "Actions": [
        {
            "Name": "Lambda",
            "ActionTypeId": {
                "Category": "Invoke",
                "Owner": "AWS",
                "Provider": "Lambda",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "FunctionName": "myLambdaFunction",
                "UserParameters": "http://192.0.2.4"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [],
            "Region": "us-west-2"
        }
    ]
},
```

------

## JSON イベントの例
<a name="action-reference-Lambda-event"></a>

Lambda アクションは、ジョブ ID、パイプラインアクション設定、入力および出力アーティファクトの場所、およびアーティファクトの暗号化情報を含む JSON イベントを送信します。ジョブワーカーは、これらの詳細にアクセスして Lambda アクションを完了します。詳細については、[ジョブの詳細](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_JobDetails.html)を参照してください。以下に示しているのは、イベントの例です。

```
{
    "CodePipeline.job": {
        "id": "11111111-abcd-1111-abcd-111111abcdef",
        "accountId": "111111111111",
        "data": {
            "actionConfiguration": {
                "configuration": {
                    "FunctionName": "MyLambdaFunction",
                    "UserParameters": "input_parameter"
                }
            },
            "inputArtifacts": [
                {
                    "location": {
                        "s3Location": {
                            "bucketName": "bucket_name",
                            "objectKey": "filename"
                        },
                        "type": "S3"
                    },
                    "revision": null,
                    "name": "ArtifactName"
                }
            ],
            "outputArtifacts": [],
            "artifactCredentials": {
                "secretAccessKey": "secret_key",
                "sessionToken": "session_token",
                "accessKeyId": "access_key_ID"
            },
            "continuationToken": "token_ID",
            "encryptionKey": { 
              "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
              "type": "KMS"
            }
        }
    }
}
```

JSON イベントは、CodePipeline の Lambda アクションの次のジョブ詳細を提供します。
+ `id`: システムによって生成されたジョブの固有の ID。
+ `accountId`: ジョブに関連付けられた AWS アカウント ID。
+ `data`: ジョブワーカーがジョブを完了するために必要なその他の情報。
  + `actionConfiguration`: Lambda アクションのアクションパラメータ。定義については、[設定パラメータ](#action-reference-Lambda-config) を参照してください。
  + `inputArtifacts`: アクションに指定されたアーティファクト。
    + `location`: アーティファクトストアの場所。
      + `s3Location`: アクションの入力アーティファクトの場所情報。
        + `bucketName`: アクションのパイプラインアーティファクトストアの名前（例: codepipeline-us-east-2-1234567890という名前の Amazon S3 バケット）。
        + `objectKey`: アプリケーションの名前（例: `CodePipelineDemoApplication.zip`）。
      + `type`: ロケーション内のアーティファクトのタイプ。現在、`S3` は唯一の有効なアーティファクトタイプです。
    + `revision`: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID（Amazon Simple Storage Service）になります。詳細については、[ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html) を参照してください。
    + `name`: `MyApp` などの作業するアーティファクトの名前。
  + `outputArtifacts`: アクションの出力。
    + `location`: アーティファクトストアの場所。
      + `s3Location`: アクションの出力アーティファクトの場所情報。
        + `bucketName`: アクションのパイプラインアーティファクトストアの名前（例: codepipeline-us-east-2-1234567890という名前の Amazon S3 バケット）。
        + `objectKey`: アプリケーションの名前（例: `CodePipelineDemoApplication.zip`）。
      + `type`: ロケーション内のアーティファクトのタイプ。現在、`S3` は唯一の有効なアーティファクトタイプです。
    + `revision`: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID（Amazon Simple Storage Service）になります。詳細については、[ArtifactRevision](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html) を参照してください。
    + `name`: `MyApp` などのアーティファクトの出力の名前。
  + `artifactCredentials`: Amazon S3 バケットの入力アーティファクトと出力アーティファクトへのアクセスに使用される AWS セッション認証情報。これらの認証情報は、 AWS Security Token Service （AWS STS）によって発行される一時的な認証情報です。
    + `secretAccessKey`: セッションのシークレットアクセスキー。
    + `sessionToken`: セッションのトークン。
    + `accessKeyId`: セッションのシークレットアクセスキー。
  + `continuationToken`: アクションによって生成されたトークン。今後のアクションでは、このトークンを使用して、アクションの実行中のインスタンスを識別します。アクションが完了すると、継続トークンは指定されません。
  + `encryptionKey`: キーなど、アーティファクトストア内のデータの暗号化に使用される暗号化 AWS KMS キー。これが未定義の場合は、Amazon Simple Storage Service のデフォルトキーが使用されます。
    + `id`: キーを識別するために使用された ID。 AWS KMS キーの場合、キー ID、キー ARN、またはエイリアス ARN を使用できます。
    + `type`: AWS KMS などの暗号化キーのタイプ。

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/) – パイプラインの Lambda アクションと CloudFormation アーティファクトの詳細については、[CodePipeline Pipelines でのパラメータオーバーライド関数の使用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html)」、[「Lambda ベースのアプリケーションのデプロイの自動化](https://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html)」、および[AWS CloudFormation 「アーティファクト](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)」を参照してください。
+ [CodePipeline のパイプラインで AWS Lambda 関数を呼び出す](actions-invoke-lambda-function.md) - この手順では、サンプルの Lambda 関数を示し、コンソールを使用して Lambda 呼び出しアクションでパイプラインを作成する方法を示します。

# AWS OpsWorks デプロイアクションリファレンス
<a name="action-reference-OpsWorks"></a>

 AWS OpsWorks アクションを使用して、パイプラインを使用して OpsWorks でデプロイします。

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

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

**アプリケーション**  
必須: はい  
 OpsWorks スタック。スタックは、アプリケーションインフラストラクチャのコンテナです。

**スタック**  
必須: はい  
 OpsWorks アプリ。アプリは、デプロイして実行するコードを表します。

**レイヤー**  
必須: いいえ  
 OpsWorks スタック。レイヤーは、一連のインスタンスの設定とリソースを指定します。

## 入力アーティファクト
<a name="action-reference-OpsWorks-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** これはアクションの入力アーティファクトです。

## 出力アーティファクト
<a name="action-reference-OpsWorks-output"></a>
+ **アーティファクトの数:** `0 to 1` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

 AWS OpsWorks サポートを受けるには、ポリシーステートメントに以下を追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "opsworks:CreateDeployment",
        "opsworks:DescribeApps",
        "opsworks:DescribeCommands",
        "opsworks:DescribeDeployments",
        "opsworks:DescribeInstances",
        "opsworks:DescribeStacks",
        "opsworks:UpdateApp",
        "opsworks:UpdateStack"
    ],
    "Resource": "resource_ARN"
},
```

## アクション設定の例
<a name="action-reference-OpsWorks-example"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Version: 1
  Provider: OpsWorks
InputArtifacts:
  - Name: myInputArtifact
Configuration:
  Stack: my-stack
  App: my-app
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "OpsWorks"
    },
    "InputArtifacts": [
        {
            "Name": "myInputArtifact"
        }
    ],
    "Configuration": {
        "Stack": "my-stack",
        "App": "my-app"
    }
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS OpsWorks ユーザーガイド](https://docs.aws.amazon.com/step-functions/latest/dg/) – でのデプロイの詳細については AWS OpsWorks、*AWS OpsWorks 「 ユーザーガイド*」を参照してください。

# AWS Service Catalog デプロイアクションリファレンス
<a name="action-reference-ServiceCatalog"></a>

 AWS Service Catalog アクションを使用して、パイプラインを使用してテンプレートをデプロイします。これらは、Service Catalog で作成したリソーステンプレートです。

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

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

**TemplateFilePath**  
必須: はい  
ソースの場所にあるリソーステンプレートのファイルパス。

**ProductVersionName**  
必須: はい  
Service Catalog の製品バージョン。

**ProductType**  
必須: はい  
Service Catalog の製品タイプ。

**ProductId**  
必須: はい  
Service Catalog の製品 ID。

**ProductVersionDescription**  
必須: いいえ  
Service Catalog の製品バージョンの説明。

## 入力アーティファクト
<a name="action-reference-ServiceCatalog-input"></a>
+ **アーティファクトの数:** `1`
+ **説明:** これはアクションの入力アーティファクトです。

## 出力アーティファクト
<a name="action-reference-ServiceCatalog-output"></a>
+ **アーティファクトの数:** `0` 
+ **説明:** 出力アーティファクトは、このアクションタイプには適用されません。

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

Service Catalog がサポートされるように、以下をポリシーステートメントに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "servicecatalog:ListProvisioningArtifacts",
        "servicecatalog:CreateProvisioningArtifact",
        "servicecatalog:DescribeProvisioningArtifact",
        "servicecatalog:DeleteProvisioningArtifact",
        "servicecatalog:UpdateProduct"
    ],
    "Resource": "resource_ARN"
},
{
    "Effect": "Allow",
    "Action": [
        "cloudformation:ValidateTemplate"
    ],
    "Resource": "resource_ARN"
}
```

## 設定ファイルのタイプ別のアクション設定の例
<a name="action-reference-ServiceCatalog-example"></a>

次の例は、個別の設定ファイルを使用しないでパイプラインをコンソールで作成する場合に、Service Catalog を使用するデプロイアクションの有効な設定を示しています。

```
"configuration": {
  "TemplateFilePath": "S3_template.json",
  "ProductVersionName": "devops S3 v2",
  "ProductType": "CLOUD_FORMATION_TEMPLATE",
  "ProductVersionDescription": "Product version description",
  "ProductId": "prod-example123456"
}
```

次の例は、個別の `sample_config.json` 設定ファイルを使用してパイプラインをコンソールで作成する場合に、Service Catalog を使用するデプロイアクションの有効な設定を示しています。

```
"configuration": {
  "ConfigurationFilePath": "sample_config.json",
  "ProductId": "prod-example123456"
}
```

### アクション設定の例
<a name="action-reference-ServiceCatalog-example-default"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Version: 1
  Provider: ServiceCatalog
OutputArtifacts:
- Name: myOutputArtifact
Configuration:
  TemplateFilePath: S3_template.json
  ProductVersionName: devops S3 v2
  ProductType: CLOUD_FORMATION_TEMPLATE
  ProductVersionDescription: Product version description
  ProductId: prod-example123456
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "ServiceCatalog"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "TemplateFilePath": "S3_template.json",
        "ProductVersionName": "devops S3 v2",
        "ProductType": "CLOUD_FORMATION_TEMPLATE",
        "ProductVersionDescription": "Product version description",
        "ProductId": "prod-example123456"
    }
}
```

------

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [Service Catalog ユーザーガイド](https://docs.aws.amazon.com/servicecatalog/latest/userguide/) – Service Catalog のリソースとテンプレートの詳細については、「*Service Catalog ユーザーガイド*」を参照してください。
+ [チュートリアル: Service Catalog にデプロイするパイプラインを作成する](tutorials-S3-servicecatalog.md) - このチュートリアルでは、製品テンプレートを Service Catalog にデプロイするパイプラインを作成して設定し、ソースリポジトリで行った変更を反映する方法について説明します。

# AWS Step Functions アクションリファレンスを呼び出す
<a name="action-reference-StepFunctions"></a>

以下を実行する AWS CodePipeline アクション。
+ パイプラインから AWS Step Functions ステートマシンの実行を開始します。
+ アクション設定のプロパティ、または入力として渡されるパイプラインアーティファクトにあるファイルのいずれかを使用して、ステートマシンに初期状態を提供します。
+ オプションで、アクションから発生した実行を識別するための実行 ID プレフィックスを設定します。
+ [標準および Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) ステートマシンをサポートします。

**注記**  
Step Functions アクションは Lambda で実行するため、Lambda 関数のアーティファクトサイズクォータと同じアーティファクトサイズクォータが適用されます。詳細については、「Lambda デベロッパーガイド」の「[Lambda クォータ](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)」を参照してください。

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

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

**StateMachineArn**  
必須: はい  
呼び出されるステートマシンの Amazon リソースネーム (ARN)。

**ExecutionNamePrefix**  
必須: いいえ  
デフォルトでは、アクション実行 ID がステートマシンの実行名として使用されます。プレフィックスが指定されている場合は、アクション実行 ID の先頭にハイフンが付加され、ステートマシンの実行名として使用されます。  

```
myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791
```
Express ステートマシンの場合、名前には 0～9、A～Z、a～z、- および \$1 のみを含める必要があります。

**InputType**  
必須: いいえ  
+ [**Literal (リテラル)**] (デフォルト): 指定すると、[**Input (入力)**] フィールドの値がステートマシンの入力に直接渡されます。

  **リテラル**を選択した場合の、**Input** フィールドの入力例。

  ```
  {"action": "test"}
  ```
+ [**FilePath**] : [**Input (入力)**] フィールドで指定された入力アーティファクトのファイルの内容が、ステートマシン実行の入力として使用されます。[**InputType**] タイプが [**FilePath**] に設定されているときは、入力アーティファクトが必要です。

  **リテラル** を選択した場合の、**Input** フィールドの入力例。

  ```
  assets/input.json
  ```

**Input**  
必須: 条件による  
+ [**Literal (リテラル)**] : [**InputType**] が [**Literal (リテラル)**] (デフォルト) に設定されている場合、このフィールドはオプションです。

  指定されている場合、[**入力**] フィールドはステートマシン実行の入力として直接使用されます。それ以外の場合は、空の JSON オブジェクト `{}` を使用してステートマシンが呼び出されます。
+ [**FilePath**] : [**InputType**] が [**FilePath**] に設定されている場合、このフィールドは必須です。

  [**InputType**] が [**FilePath**] に設定されている場合は、入力アーティファクトも必須です。

  指定された入力アーティファクトのファイルの内容は、ステートマシン実行の入力として使用されます。

## 入力アーティファクト
<a name="action-reference-StepFunctions-input"></a>
+ **アーティファクトの数:** `0 to 1`
+ **説明:** [**InputType**] が [**FilePath**] に設定されている場合、このアーティファクトは必須であり、ステートマシンの実行のための入力のソースに使用されます。

## 出力アーティファクト
<a name="action-reference-StepFunctions-output"></a>
+ **アーティファクトの数:** `0 to 1` 
+ **説明:**
  + **標準ステートマシン**: 指定すると、出力アーティファクトには、ステートマシンの出力が入力されます。これは、ステートマシンの実行が正常に終了した後、[ステップ関数 DescribeExecution API](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) 応答の`output` プロパティから取得できます。
  + **Express ステートマシン**: サポートされていません。

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

このアクションにより、パイプライン内のダウンストリームアクションのアクション設定によって参照できる出力変数が生成されます。

詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。

**StateMachineArn**  
 ステートマシンの ARN。

**ExecutionArn**  
ステートマシンの実行の ARN。標準ステートマシンのみ。

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

`StepFunctions` アクションでは、Step Functions 呼び出しアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可は次のとおりです。

```
{
    "Effect": "Allow",
    "Action": [
        "states:DescribeStateMachine",
        "states:DescribeExecution",
        "states:StartExecution"
    ],
    "Resource": "resource_ARN"
},
```

## アクション設定の例
<a name="action-reference-StepFunctions-example"></a>

### デフォルト入力の例
<a name="action-reference-StepFunctions-example-default"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix"
    }
}
```

------

### リテラル入力の例
<a name="action-reference-StepFunctions-example-literal"></a>

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

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
  Input: '{"action": "test"}'
```

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

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "Input": "{\"action\": \"test\"}"
    }
}
```

------

### 入力ファイルの例
<a name="action-reference-StepFunctions-example-filepath"></a>

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

```
Name: ActionName
InputArtifacts:
  - Name: myInputArtifact
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine'
  ExecutionNamePrefix: my-prefix
  InputType: FilePath
  Input: assets/input.json
```

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

```
{
    "Name": "ActionName",
    "InputArtifacts": [
        {
            "Name": "myInputArtifact"
        }
    ],
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "InputType": "FilePath",
        "Input": "assets/input.json"
    }
}
```

------

## 行動
<a name="action-reference-StepFunctions-types"></a>

リリース中、CodePipeline はアクション設定で指定された入力を使用して設定されたステートマシンを実行します。

[**InputType**] が [**Literal (リテラル)**] に設定されている場合、[**Input (入力)**] アクション設定フィールドの内容がステートマシンの入力として使用されます。リテラル入力が指定されていない場合、ステートマシンの実行では空の JSON オブジェクト `{}` が使用されます。入力なしでステートマシンを実行する方法の詳細については、「[ステップ関数 StartExecution API](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)」を参照してください。

[**InputType**] が [**FilePath**] に設定されている場合、アクションは入力アーティファクトを解凍し、[**Input (入力)**] アクション設定フィールドで指定されたファイルの内容をステートマシンの入力として使用します。[**FilePath**] が指定されている場合、[**Input (入力)**] フィールドは必須で、入力アーティファクトが存在する必要があります。そうでない場合、アクションは失敗します。

起動が正常に実行されると、*標準*と *Express* の 2 つのステートマシンタイプに対して動作が分岐します。

### 標準ステートマシン
<a name="action-reference-StepFunctions-types-standard"></a>

標準ステートマシンの実行が正常に開始された場合、CodePipeline は実行がターミナルステータスに達するまで `DescribeExecution` API をポーリングします。実行が正常に完了するとアクションは成功し、それ以外の場合は失敗します。

出力アーティファクトが設定されている場合、アーティファクトにはステートマシンの戻り値が含まれます。これは、ステートマシンの実行が正常に終了した後、[ステップ関数 DescribeExecution API](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) 応答の`output` プロパティから取得できます。この API には出力長の制約が適用されることに注意してください。

#### エラー処理
<a name="action-reference-StepFunctions-types-standard-handling"></a>
+ アクションがステートマシンの実行を開始できない場合、アクションの実行は失敗します。
+ CodePipeline ステップ関数アクションがタイムアウト (デフォルトは 7 日間) に達する前にステートマシンの実行がターミナルステータスに到達しなかった場合、アクションの実行は失敗します。この障害にもかかわらず、ステートマシンは続行される可能性があります。ステップ関数でのステートマシンの実行タイムアウトの詳細については、「[標準ワークフローと Express ワークフロー](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)」を参照してください。
**注記**  
アクションを持つアカウントの呼び出しアクションタイムアウトのクォータの引き上げをリクエストできます。ただし、クォータの引き上げは、そのアカウントのすべてのリージョンで、このタイプのすべてのアクションに適用されます。
+ ステートマシンの実行が FAILED、TIMED\$1OUT、または ABORTED のターミナルステータスに達すると、アクションの実行は失敗します。

### Express ステートマシン
<a name="action-reference-StepFunctions-types-express"></a>

Express ステートマシンの実行が正常に開始されると、呼び出しアクションの実行は正常に完了します。

Express ステートマシン用に設定されたアクションに関する考慮事項。
+ 出力アーティファクトは指定できません。
+ アクションは、ステートマシンの実行が完了するまで待機しません。
+ CodePipeline でアクションの実行が開始されると、ステートマシンの実行が失敗した場合でも、アクションの実行は成功します。

#### エラー処理
<a name="action-reference-StepFunctions-types-express-handling"></a>
+ CodePipeline がステートマシンの実行のスタートに失敗すると、アクションの実行は失敗します。それ以外の場合、アクションはすぐに成功します。CodePipeline のアクションは、ステートマシンの実行が完了するまでの時間、またはその結果に関係なく、成功します。

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

このアクションを利用する際に役立つ関連リソースは以下の通りです。
+ [AWS Step Functions デベロッパーガイド](https://docs.aws.amazon.com/step-functions/latest/dg/) – ステートマシン、実行、およびステートマシンの入力については、「 *AWS Step Functions デベロッパーガイド*」を参照してください。
+ [チュートリアル: パイプラインで AWS Step Functions 呼び出しアクションを使用する](tutorials-step-functions.md) - このチュートリアルでは、サンプルの標準ステートマシンから開始し、コンソールを使用してステップ関数の呼び出しアクションを追加してパイプラインを更新する方法について説明します。