

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

# 例: Amazon ECS taskdef を変更する
<a name="render-ecs-action-example-workflow"></a>

以下は、**Amazon ECS タスク定義のレンダリング**アクションとビルドおよびデプロイアクションを含む、完全なワークフローの例です。このワークフローの目的は、Docker イメージをビルドして Amazon ECS クラスターにデプロイすることです。このワークフローは、連続して実行される次の構成要素で構成されます。
+ **トリガー** – ソースリポジトリに変更をプッシュすると、このトリガーによってワークフローが自動的に開始されます。トリガーについての詳細は、「[トリガーを使用したワークフロー実行の自動的な開始](workflows-add-trigger.md)」を参照してください。
+ **ビルド**アクション (`BuildDocker`) – トリガーされると、アクションは Dockerfile を使用して Docker イメージをビルドし、コミット ID でタグ付けして、イメージを Amazon ECR にプッシュします。ビルドアクションの詳細については、「[ワークフローを使用したビルド](build-workflow-actions.md)」を参照してください。
+ **Amazon ECS タスク定義のレンダリング**アクション (`RenderTaskDef`) – ビルドアクションが完了すると、このアクションはソースリポジトリのルートにある既存の `taskdef.json` を、正しいコミット ID を含む `image` フィールド値で更新します。更新されたファイルが新しいファイル名 (`task-definition-random-string.json`) で保存され、このファイルを含む出力アーティファクトが作成されます。レンダリングアクションは `task-definition` という変数も生成し、それを新しいタスク定義ファイルの名前に設定します。デプロイアクションでは、次のようなアーティファクトと変数が使用されます。
+ **Amazon ECS へのデプロイ**アクション (`DeployToECS`) – **Amazon ECS タスク定義のレンダリング**アクションが完了すると、**Amazon ECS にデプロイ**アクションは、レンダリングアクション (`TaskDefArtifact`) によって生成された出力アーティファクトを探し、その中にある `task-definition-random-string.json` ファイルを見つけて、Amazon ECS サービスに登録します。次に、Amazon ECS サービスは、`task-definition-random-string.json` ファイルの手順に従って、Amazon ECS クラスター内で Amazon ECS タスクと関連する Docker イメージコンテナを実行します。

```
Name: codecatalyst-ecs-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocker:
    Identifier: aws/build@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-build-role
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:
      Steps:
        #pre_build:
        - Run: echo Logging in to Amazon ECR...
        - Run: aws --version
        - Run: aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-2.amazonaws.com
        #build:
        - Run: echo Build started on `date`
        - Run: echo Building the Docker image...
        - Run: docker build -t $REPOSITORY_URI:latest .
        - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
        #post_build:
        - Run: echo Build completed on `date`
        - Run: echo Pushing the Docker images...
        - Run: docker push $REPOSITORY_URI:latest
        - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
        
  RenderTaskDef:
    DependsOn: 
      - BuildDocker
    Identifier: aws/ecs-render-task-definition@v1
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:      
      task-definition: taskdef.json
      container-definition-name: codecatalyst-ecs-container
      image: $REPOSITORY_URI:$IMAGE_TAG 
    # The output artifact contains the updated task definition file. 
    # The new file is prefixed with 'task-definition'.
    # The output variable is set to the name of the updated task definition file. 
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: 
            - "task-definition*"
      Variables:
        - task-definition
        
  DeployToECS:
    Identifier: aws/ecs-deploy@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-deploy-role
    #Input artifact contains the updated task definition file.
    Inputs:
      Sources: []
      Artifacts:
        - TaskDefArtifact
    Configuration:
      region: us-east-2
      cluster: codecatalyst-ecs-cluster
      service: codecatalyst-ecs-service
      task-definition: ${RenderTaskDef.task-definition}
```

# 「Amazon ECS タスク定義のレンダリング」アクションの追加
<a name="render-ecs-action-add"></a>

 次の手順を使用して、「**Amazon ECS タスク定義のレンダリング**」アクションをワークフローに追加します。

**前提条件**  
開始する前に、Docker イメージを動的に生成するビルドアクションを含むワークフローがあることを確認してください。詳細については、前述の[ワークフローの例](render-ecs-action-example-workflow.md)を参照してください。

------
#### [ Visual ]

**ビジュアルエディタを使用して「Amazon ECS タスク定義のレンダリング」アクションを追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. 左上で **[\$1 アクション]** を選択してアクションカタログを開きます。

1. ドロップダウンリストから、**[Amazon CodeCatalyst]** を選択します。

1. **[Amazon ECS タスク定義のレンダリング]** アクションを検索し、次のいずれかを実行します。
   + プラス記号 (**＋**) を選択してワークフロー図にアクションを追加し、設定ペインを開きます。

     または
   + **[Amazon ECS タスク定義のレンダリング]** を選択します。アクションの詳細ダイアログボックスが表示されます。このダイアログボックスで、次の操作を行います。
     + (任意) **[ソースを表示]** を選択して、[アクションのソースコードを表示します](workflows-view-source.md#workflows-view-source.title)。
     + **[ワークフローに追加]** を選択して、ワークフロー図にアクションを追加し、設定ペインを開きます。

1. **[入力]** タブと **[設定]** タブで、必要に応じてフィールドに入力します。各フィールドの説明については、「[「Amazon ECS タスク定義のレンダリング」アクション YAML](render-ecs-action-ref.md)」を参照してください。このリファレンスでは、各フィールド (および対応する YAML プロパティ値) について、YAML エディタとビジュアルエディタの両方で表示される詳細情報を提供しています。

1. (オプション) **[検証]** を選択して、コミットする前にワークフローの YAML コードを検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

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

**YAML エディタを使用して「Amazon ECS タスク定義のレンダリング」アクションを追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. 左上で **[\$1 アクション]** を選択してアクションカタログを開きます。

1. ドロップダウンリストから、**[Amazon CodeCatalyst]** を選択します。

1. **[Amazon ECS タスク定義のレンダリング]** アクションを検索し、次のいずれかを実行します。
   + プラス記号 (**＋**) を選択してワークフロー図にアクションを追加し、設定ペインを開きます。

     または
   + **[Amazon ECS タスク定義のレンダリング]** を選択します。アクションの詳細ダイアログボックスが表示されます。このダイアログボックスで、次の操作を行います。
     + (任意) **[ソースを表示]** を選択して、[アクションのソースコードを表示します](workflows-view-source.md#workflows-view-source.title)。
     + **[ワークフローに追加]** を選択して、ワークフロー図にアクションを追加し、設定ペインを開きます。

1. 必要に応じて、YAML コードのプロパティを変更します。使用可能な各プロパティの説明は、「[「Amazon ECS タスク定義のレンダリング」アクション YAML](render-ecs-action-ref.md)」に記載されています。

1. (オプション) **[検証]** を選択して、コミットする前にワークフローの YAML コードを検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

**次の手順**

レンダリングアクションを追加したら、「[ワークフローを使用した Amazon ECS へのデプロイ](deploy-action-ecs.md)」の指示に従って、「**Amazon ECS にデプロイ**」アクションをワークフローに追加します。デプロイアクションを追加するときに、以下を実行します。

1. デプロイアクションの**[入力]** タブの **[アーティファクト - オプション]** で、レンダリングアクションによって生成されたアーティファクトを選択します。これには更新されたタスク定義ファイルが含まれています。

   アーティファクトの詳細については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

1. デプロイアクションの **[設定]** タブの **[タスク定義]** フィールドで、アクション変数 `${action-name.task-definition}` を指定します。ここで、*action-name* はレンダリングアクションの名前 (例えば `RenderTaskDef`) です。レンダリングアクションは、この変数をタスク定義ファイルの新しい名前に設定します。

   変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

   デプロイアクションの設定方法の詳細については、前述の[ワークフローの例](render-ecs-action-example-workflow.md)を参照してください。

# 更新されたタスク定義ファイルの表示
<a name="render-ecs-action-view"></a>

更新されたタスク定義ファイルの名前と内容を表示できます。

****Amazon ECS タスク定義のレンダリング**アクションで処理された後、更新されたタスク定義ファイルの名前を表示する。**

1. 完了したレンダリングアクションを含む実行を見つけます。

   1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

   1. プロジェクトを選択します。

   1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

   1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

   1. 完了したレンダリングアクションを含む実行を選択します。

1. ワークフロー図で、レンダリングアクションを選択します。

1. **[出力]** を選択します。

1. **[変数]** を選択します。

1. タスク定義ファイル名が表示されます。`task-definition--259-0a2r7gxlTF5X-.json` のようになります。

**更新されたタスク定義ファイルの内容を表示するには**

1. 完了したレンダリングアクションを含む実行を見つけます。

   1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

   1. プロジェクトを選択します。

   1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

   1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

   1. 完了したレンダリングアクションを含む実行を選択します。

1. ワークフロー実行で、上部の **[ビジュアル]** と **[YAML]** の横にある **[ワークフロー出力]** を選択します。

1. **[アーティファクト]** セクションで、更新されたタスク定義ファイルを含むアーティファクトの横にある **[ダウンロード]** を選択します。このアーティファクトの **[次によって生成済み:]** 列は、は、レンダリングアクションの名前に設定されます。

1. .zip ファイルを開き、タスク定義の .json ファイルを表示します。

# 「Amazon ECS タスク定義のレンダリング」の変数
<a name="render-ecs-action-variables"></a>

**Amazon ECS タスク定義のレンダリング**アクションは、実行時に次の変数を生成して設定します。これらは*事前定義済み変数*と呼ばれます。

ワークフローでこれらの変数を参照する方法については、「[事前定義済み変数の使用](workflows-using-predefined-variables.md)」を参照してください


| キー | 値 | 
| --- | --- | 
|  タスク定義  |  **Amazon ECS タスク定義のレンダリング**アクションによって更新されたタスク定義ファイルに付けられた名前。バケット名は `task-definition-random-string.json` 形式に従います。 例: `task-definition--259-0a2r7gxlTF5Xr.json`  | 

# 「Amazon ECS タスク定義のレンダリング」アクション YAML
<a name="render-ecs-action-ref"></a>

以下は、**Amazon ECS タスク定義のレンダリング**アクションの YAML 定義です。このアクションの使用方法については、「[Amazon ECS タスク定義の変更](render-ecs-action.md)」を参照してください。

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**注記**  
後続の YAML プロパティのほとんどには、対応する UI 要素がビジュアルエディタにあります。UI 要素を検索するには、**[Ctrl\$1F]** を使用します。要素は、関連付けられた YAML プロパティとともに一覧表示されます。

```
# The workflow definition starts here.
# See 最上位プロパティ for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  ECSRenderTaskDefinition\$1nn: 
    Identifier: aws/ecs-render-task-definition@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - task-definition-artifact
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Configuration 
      task-definition: task-definition-path
      container-definition-name: container-definition-name
      image: docker-image-name
      environment-variables:
        - variable-name-1=variable-value-1
        - variable-name-2=variable-value-2
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: "task-definition*"
      Variables:
        - task-definition
```

## ECSRenderTaskDefinition
<a name="render.ecs.name"></a>

(必須)

アクションの名前を指定します。すべてのアクション名は、ワークフロー内で一意である必要があります。アクション名で使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、アクション名の特殊文字とスペースを有効にすることはできません。

デフォルト: `ECSRenderTaskDefinition_nn`。

対応する UI: [設定] タブ/**[アクション名]**

## Identifier
<a name="render.ecs.identifier"></a>

(*ECSRenderTaskDefinition*/**Identifier**)

(必須)

アクションを識別します。バージョンを変更したい場合でない限り、このプロパティを変更しないでください。詳細については、「[使用するアクションバージョンの指定](workflows-action-versions.md)」を参照してください。

デフォルト: `aws/ecs-render-task-definition@v1`。

対応する UI: ワークフロー図/ECSRenderTaskDefinition\$1nn/**aws/ecs-render-task-definition@v1** ラベル

## DependsOn
<a name="render.ecs.dependson"></a>

(*ECSRenderTaskDefinition*/**DependsOn**)

(オプション)

このアクションを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。

「DependsOn」機能の詳細については、「[アクションの順序付け](workflows-depends-on.md)」を参照してください。

対応する UI: [入力] タブ/**[依存 - オプション]**

## Compute
<a name="render.ecs.computename"></a>

(*ECSRenderTaskDefinition*/**Compute**)

(オプション)

ワークフローアクションの実行に使用されるコンピューティングエンジンです。コンピューティングはワークフローレベルまたはアクションレベルで指定できますが、両方を指定することはできません。ワークフローレベルで指定すると、コンピューティング設定はワークフローで定義されたすべてのアクションに適用されます。ワークフローレベルでは、同じインスタンスで複数のアクションを実行することもできます。詳細については、「[アクション間でのコンピューティングの共有する](compute-sharing.md)」を参照してください。

対応する UI: *[なし]*

## Type
<a name="render.ecs.computetype"></a>

(*ECSRenderTaskDefinition*/Compute/**Type**)

([Compute](#render.ecs.computename) が含まれている場合は必須)

コンピューティングエンジンのタイプです。次のいずれかの値を使用できます。
+ **EC2** (ビジュアルエディタ) または `EC2` (YAML エディタ)

  アクション実行時の柔軟性を目的として最適化されています。
+ **Lambda** (ビジュアルエディタ) または `Lambda` (YAML エディタ)

  アクションの起動速度を最適化しました。

コンピューティングタイプの詳細については、「[コンピューティングタイプ](workflows-working-compute.md#compute.types)」を参照してください。

対応する UI: [設定] タブ/**[コンピューティングタイプ]**

## Fleet
<a name="render.ecs.computefleet"></a>

(*ECSRenderTaskDefinition*/Compute/**Fleet**)

(オプション)

ワークフローまたはワークフローアクションを実行するマシンまたはフリートを指定します。オンデマンドフリートでは、アクションが開始すると、ワークフローは必要なリソースをプロビジョニングし、アクションが完了するとマシンは破棄されます。オンデマンドフリートの例: `Linux.x86-64.Large`、`Linux.x86-64.XLarge`。オンデマンドフリートの詳細については、「[オンデマンドフリートのプロパティ](workflows-working-compute.md#compute.on-demand)」を参照してください。

プロビジョニングされたフリートでは、ワークフローアクションを実行するように専用マシンのセットを設定します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できます。プロビジョニングされたフリートの詳細については、「[プロビジョニングされたフリートのプロパティ](workflows-working-compute.md#compute.provisioned-fleets)」を参照してください。

`Fleet` を省略した場合、デフォルトは `Linux.x86-64.Large` です。

対応する UI: [設定] タブ/**[コンピューティングフリート]**

## Timeout
<a name="render.ecs.timeout"></a>

(*ECSRenderTaskDefinition*/**Timeout**)

(オプション)

CodeCatalyst がアクションを終了するまでにアクションを実行できる時間を分単位 (YAML エディタ) または時間分単位 (ビジュアルエディタ) で指定します。最小値は 5 分で、最大値は [CodeCatalyst のワークフローのクォータ](workflows-quotas.md) で記述されています。デフォルトのタイムアウトは、最大タイムアウトと同じです。

対応する UI: [設定] タブ/**[タイムアウト - オプション]**

## Inputs
<a name="render.ecs.inputs"></a>

(*ECSRenderTaskDefinition*/**Inputs**)

(オプション)

`Inputs` セクションでは、ワークフローの実行中に `ECSRenderTaskDefinition` に必要なデータを定義します。

**注記**  
**Amazon ECS タスク定義のレンダリング**アクションごとに 1 つの入力 (ソースまたはアーティファクト) のみが許可されます。変数はこの合計にはカウントされません。

対応する UI: **入力**タブ

## Sources
<a name="render.ecs.inputs.sources"></a>

(*ECSRenderTaskDefinition*/Inputs/**Sources**)

(タスク定義ファイルがソースリポジトリに保存されている場合は必須)

タスク定義ファイルがソースリポジトリに保存されている場合は、そのソースリポジトリのラベルを指定します。現在サポートされているラベルは、`WorkflowSource` のみです。

タスク定義ファイルがソースリポジトリに含まれていない場合は、別のアクションによって生成されたアーティファクトに存在する必要があります。

sources の詳細については、「[ワークフローへのソースリポジトリの接続](workflows-sources.md)」を参照してください。

対応する UI: 入力タブ/**[ソース - オプション]**

## Artifacts - input
<a name="render.ecs.inputs.artifacts"></a>

(*ECSRenderTaskDefinition*/Inputs/**Artifacts**)

(タスク定義ファイルが前のアクションの[出力アーティファクト](workflows-working-artifacts-output.md)に保存されている場合は必須)

デプロイするタスク定義ファイルが以前のアクションによって生成されたアーティファクトに含まれている場合は、ここでそのアーティファクトを指定します。タスク定義ファイルがアーティファクトに含まれていない場合は、ソースリポジトリに存在する必要があります。

アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

対応する UI: [設定] タブ/**[アーティファクト - オプション]**

## Variables - input
<a name="render.ecs.inputs.variables"></a>

(*ECSRenderTaskDefinition*/Inputs/**Variables**)

(必須)

アクションで使用する入力変数を定義する名前と値のペアのシーケンスを指定します。変数名に使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、変数名で特殊文字とスペースを有効にすることはできません。

変数の詳細 (例を含む) については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

対応する UI: [入力] タブ/**[変数 - オプション]**

## Configuration
<a name="render.ecs.configuration"></a>

(*ECSRenderTaskDefinition*/**Configuration**)

(必須)

アクションの設定プロパティを定義できるセクション。

対応する UI: **[設定]** タブ

## task-definition
<a name="render.ecs.task.definition"></a>

(*ECSRenderTaskDefinition*/Configuration/**task-definition**)

(必須)

既存のタスク定義ファイルへのパスを指定します。ファイルがソースリポジトリに存在する場合、パスはソースリポジトリのルートフォルダに相対します。ファイルが以前のワークフローアクションのアーティファクトに存在する場合、パスはアーティファクトルートフォルダを基準としています。タスク定義ファイルの詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[タスク定義](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions)」 を参照してください。

対応する UI: [設定] タブ/**[タスク定義]**

## container-definition-name
<a name="render.ecs.container.name"></a>

(*ECSRenderTaskDefinition*/Configuration/**container-definition-name**)

(必須)

Docker イメージを実行するコンテナの名前を指定します。この名前はタスク定義ファイルの `containerDefinitions`、`name`フィールドにあります。詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[名前](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_name)」を参照してください。

対応する UI: [設定] タブ/**[コンテナ名]**

## image
<a name="render.ecs.image"></a>

(*ECSRenderTaskDefinition*/Configuration/**image**)

(必須)

**Amazon ECS タスク定義のレンダリング**アクションでタスク定義ファイルに追加する Docker イメージの名前を指定します。アクションは、タスク定義ファイルの `containerDefinitions`、`image`フィールドにこの名前を追加します。値が `image` フィールドに既に存在する場合、アクションは値を上書きします。イメージ名には変数を含めることができます。

例:

`MyDockerImage:${WorkflowSource.CommitId}` を指定すると、アクションによって `MyDockerImage:commit-id` がタスク定義ファイルに追加されます。ここで、*commit-id* はワークフローによって実行時に生成されるコミット ID です。

`my-ecr-repo/image-repo:$(date +%m-%d-%y-%H-%m-%s)` を指定すると、アクションによって、*my-ecr-repo*/image-repo:*date \$1%m-%d-%y-%H-%m-%s* がタスク定義ファイルに追加されます。ここで、*my-ecr-repo* は Amazon Elastic Container Registry (ECR) の URI であり、*date \$1%m-%d-%y-%H-%m-%s* はワークフローによって実行時に生成される `month-day-year-hour-minute-second` 形式のタイムスタンプです。

`image` の詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[イメージ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_image)」を参照してください。変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

対応する UI: [設定] タブ/**[イメージ名]**

## environment-variables
<a name="render.ecs.environment.variables"></a>

(*ECSRenderTaskDefinition*/Configuration/**environment-variables**)

(必須)

**Amazon ECS タスク定義のレンダリング**アクションでタスク定義ファイルに追加する環境変数を指定します。アクションは、タスク定義ファイルの `containerDefinitions`、`environment`フィールドに変数を追加します。変数がファイル内に既に存在する場合、アクションは既存の変数の値を上書きし、新しい変数を追加します。Amazon ECS の環境変数の詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[環境変数の指定](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)」を参照してください。

対応する UI: [設定] タブ/**[環境変数 - オプション]**

## Outputs
<a name="render.ecs.outputs"></a>

(*ECSRenderTaskDefinition*/**Outputs**)

(必須)

ワークフローの実行中にアクションによって出力されるデータを定義します。

対応する UI: **[出力]** タブ

## Artifacts
<a name="render.ecs.outputs.artifacts"></a>

(*ECSRenderTaskDefinition*/Outputs/**Artifacts**)

(必須)

アクションによって生成されたアーティファクトを指定します。このアーティファクトは、他のアクションの入力として参照できます。

アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

対応する UI: [出力] タブ/**[アーティファクト]**

## Name
<a name="render.ecs.outputs.artifacts.name"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Name**)

(必須)

更新されたタスク定義ファイルを含むアーティファクトの名前を指定します。デフォルト値は `MyTaskDefinitionArtifact` です。次に、このアーティファクトを **Amazon ECS にデプロイ**アクションへの入力として指定する必要があります。このアーティファクトを **Amazon ECS にデプロイ**アクションへの入力として追加する方法については、「[例: Amazon ECS taskdef を変更する](render-ecs-action-example-workflow.md)」を参照してください。

対応する UI: [出力] タブ/[アーティファクト[/**[名前]**

## Files
<a name="render.ecs.outputs.artifacts.files"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Files**)

(必須)

アーティファクトに含めるファイルを指定します。`task-definition-*` を指定して、更新されたタスク定義ファイル (`task-definition-` で始まる) を含める必要があります。

対応する UI: [出力] タブ/[アーティファクト]/**[ファイル]**

## Variables
<a name="render.ecs.outputs.variables"></a>

(*ECSRenderTaskDefinition*/Outputs/**Variables**)

(必須)

レンダリングアクションで設定する変数の名前を指定します。レンダリングアクションは、この変数の値を更新されたタスク定義ファイルの名前 (例: `task-definition-random-string.json`) に設定します。次に、**Amazon ECS へのデプロイ**アクションの**タスク定義** (ビジュアルエディタ) または `task-definition` (YAML エディタ) プロパティに、この変数を指定する必要があります。この変数を **Amazon ECS へのデプロイ**アクションに追加する方法については、「[例: Amazon ECS taskdef を変更する](render-ecs-action-example-workflow.md)」を参照してください。

デフォルト: `task-definition`

対応する UI: [出力] タブ/[変数]/**[名前]** フィールド