本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
修改 Amazon ECS任務定義
本節說明如何使用 CodeCatalyst 工作流程更新 Amazon Elastic Container Service (AmazonECS) 任務定義檔案中image
的欄位。若要完成此操作,您必須將 Render Amazon ECS任務定義動作新增至工作流程。此動作會使用工作流程在執行階段提供的 Docker 映像名稱,更新任務定義檔案中的映像欄位。
注意
您也可以使用此動作,使用環境變數來更新任務定義的environment
欄位。
主題
何時使用此動作
如果您有建立 Docker 映像並標記動態內容的工作流程,例如遞交 ID 或時間戳記,請使用此選項。
如果您的任務定義檔案包含始終保持不變的影像值,請勿使用此動作。在這種情況下,您可以將映像的名稱手動輸入任務定義檔案中。
'Render Amazon ECS任務定義' 動作的運作方式
您必須使用 Render Amazon ECS任務定義動作搭配工作流程中的建置和部署至 Amazon ECS 動作。這些動作一起運作的方式如下:
-
建置動作會建置您的 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
-
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 開發人員指南 中的指定環境變數。
-
部署至 Amazon ECS 動作會向 Amazon 註冊更新的任務定義檔案ECS。註冊更新的任務定義檔案會將新映像部署
MyDockerImage:a37bd7e
到 Amazon ECS。
'Render Amazon ECS任務定義' 動作使用的執行期映像
Render Amazon ECS任務定義動作會在 2022 年 11 月的映像 上執行。如需詳細資訊,請參閱作用中影像。