修改 Amazon ECS任務定義 - Amazon CodeCatalyst

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

修改 Amazon ECS任務定義

本節說明如何使用 CodeCatalyst 工作流程更新 Amazon Elastic Container Service (AmazonECS) 任務定義檔案中image的欄位。若要完成此操作,您必須將 Render Amazon ECS任務定義動作新增至工作流程。此動作會使用工作流程在執行階段提供的 Docker 映像名稱,更新任務定義檔案中的映像欄位。

注意

您也可以使用此動作,使用環境變數來更新任務定義的environment欄位。

何時使用此動作

如果您有建立 Docker 映像並標記動態內容的工作流程,例如遞交 ID 或時間戳記,請使用此選項。

如果您的任務定義檔案包含始終保持不變的影像值,請勿使用此動作。在這種情況下,您可以將映像的名稱手動輸入任務定義檔案中。

'Render Amazon ECS任務定義' 動作的運作方式

您必須使用 Render 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

  2. Render 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 } ] } ], ... }

    或者,您也可以讓 Render 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 開發人員指南 中的指定環境變數

  3. 部署至 Amazon ECS 動作會向 Amazon 註冊更新的任務定義檔案ECS。註冊更新的任務定義檔案會將新映像部署MyDockerImage:a37bd7e到 Amazon ECS。

'Render Amazon ECS任務定義' 動作使用的執行期映像

Render Amazon ECS任務定義動作會在 2022 年 11 月的映像 上執行。如需詳細資訊,請參閱作用中影像