

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

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