

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# Amazon ECS タスク定義の変更
<a name="render-ecs-action"></a>

このセクションでは、CodeCatalyst ワークフローを使用して Amazon Elastic Container Service (Amazon ECS) [タスク定義ファイルの](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) `image` フィールドを更新する方法について説明します。これを行うには、「**Amazon ECS タスク定義のレンダリング**」アクションをワークフローに追加する必要があります。このアクションによって、タスク定義ファイルの image フィールドが、実行時にワークフローで指定された Docker イメージ名で更新されます。

**注記**  
このアクションを使用して、タスク定義の `environment` フィールドを環境変数で更新することもできます。

**Topics**
+ [このアクションを使用する場合](#render-ecs-action-when-to-use)
+ [「Amazon ECS タスク定義のレンダリング」アクションの仕組み](#render-ecs-action-how-it-works)
+ [「Amazon ECS タスク定義のレンダリング」アクションで使用されるランタイムイメージ](#render-ecs-action-runtime)
+ [例: Amazon ECS taskdef を変更する](render-ecs-action-example-workflow.md)
+ [「Amazon ECS タスク定義のレンダリング」アクションの追加](render-ecs-action-add.md)
+ [更新されたタスク定義ファイルの表示](render-ecs-action-view.md)
+ [「Amazon ECS タスク定義のレンダリング」の変数](render-ecs-action-variables.md)
+ [「Amazon ECS タスク定義のレンダリング」アクション YAML](render-ecs-action-ref.md)

## このアクションを使用する場合
<a name="render-ecs-action-when-to-use"></a>

このアクションは、ワークフローで Docker イメージをビルドして、動的コンテンツ (コミット ID やタイムスタンプなど) でタグ付けする場合に使用します。

タスク定義ファイルに常に同じイメージ値が含まれる場合は、このアクションを使用しないでください。その場合には、イメージの名前をタスク定義ファイルに手動で入力できます。

## 「Amazon ECS タスク定義のレンダリング」アクションの仕組み
<a name="render-ecs-action-how-it-works"></a>

**Amazon ECS タスク定義のレンダリング**アクションは、ワークフローの**ビルド**アクションと **Amazon ECS へのデプロイ**アクションで使用する必要があります。これらのアクションは連携して、次のように機能します。

1. **ビルド**アクションでは、Docker イメージをビルドし、名前、コミット ID、タイムスタンプ、その他の動的コンテンツでタグ付けします。例えば、ビルドアクションは次のようになります。

   ```
   MyECSWorkflow
     Actions:
       BuildAction:
         Identifier: aws/build@v1
         ...
         Configuration:
           Steps:
           # Build, tag, and push the Docker image...
             - Run: docker build -t MyDockerImage:${WorkflowSource.CommitId} .
             ...
   ```

   上記のコードでは、アクションの実行時に `docker build -t` ディレクティブ が Docker イメージをビルドし、コミット ID でタグ付けします。生成されたイメージ名は次のようになります。

   `MyDockerImage:a37bd7e`

1. **Amazon ECS タスク定義のレンダリング**アクションは、次のように、動的に生成されたイメージ名 `MyDockerImage:a37bd7e` をタスク定義ファイルに追加します。

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image":  MyDockerImage:a37bd7e, 
               "essential": true,
               ...
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
   ...
   }
   ```

   必要に応じて、次のように、**Amazon ECS タスク定義のレンダリング**アクションでタスク定義に環境変数を追加することもできます。

   ```
   {
     "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
     "containerDefinitions": [
       {
         "name": "codecatalyst-ecs-container",
         "image":  MyDockerImage:a37bd7e,
         ...
         "environment": [
           {
             name": "ECS_LOGLEVEL",
             value": "info"
           }
         ]
       }
     ],
   ...
   }
   ```

   環境変数の詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[環境変数の指定](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)」を参照してください。

1. **Amazon ECS へのデプロイ**アクションは、更新されたタスク定義ファイルを Amazon ECS に登録します。更新されたタスク定義ファイルを登録すると、新しいイメージ `MyDockerImage:a37bd7e` が Amazon ECS にデプロイされます。

## 「Amazon ECS タスク定義のレンダリング」アクションで使用されるランタイムイメージ
<a name="render-ecs-action-runtime"></a>

**Amazon ECS タスク定義のレンダリング**アクションは、[2022 年 11 月のイメージ](build-images.md#build.previous-image)で実行されます。詳細については、「[アクティブなイメージ](build-images.md#build-curated-images)」を参照してください。