

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 「轉譯 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**)

(選用)

指定必須成功執行的動作、動作群組或閘道，才能執行此動作。

如需 'depends on' 功能的詳細資訊，請參閱 [定序動作](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 任務定義**動作只允許一個輸入 （來源或成品）。變數不會計入此總計。

對應的 UI：**輸入**索引標籤

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

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

（如果您的任務定義檔案存放在來源儲存庫中，則為必要項目）

如果您的任務定義檔案存放在來源儲存庫中，請指定該來源儲存庫的標籤。目前，唯一支援的標籤是 `WorkflowSource`。

如果您的任務定義檔案不包含在來源儲存庫中，它必須位於另一個動作所產生的成品中。

如需來源的詳細資訊，請參閱 [將來源儲存庫連線至工作流程](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：輸出索引標籤/變數/**名稱**欄位