首页 > 解决方案 > 如何在 AWS SAM 状态机 JSON 中动态标记 TaskDefinition?

问题描述

我在状态机中定义了一个 ECS Fargate 任务,如下所示:

"triggerECSRestore": {
    "Type": "Task",
    "Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken",
    "Parameters":{
            "LaunchType":"FARGATE",
            "Cluster":"cluster-name",
            "TaskDefinition":"arn:aws:ecs:us-east-1:12345:task-definition/abc:38",
            "NetworkConfiguration": {
                "AwsvpcConfiguration": {
                "SecurityGroups": [
                    "abc"
                ],
                "Subnets": [
                    "subnet-111",
                    "subnet-222",
                    "subnet-333"
                ]
                }
            },

ecs 实例本身在别处定义。当我为该 ecs 提交更改时,TaskDefninition 会通过递增 1 来更改(例如,请参阅 end 'abc:38' 变为 'abc:39')。所以每次我对 ecs 进行更改时,我都必须更新上面的内容Parameters.TaskDefinition。我已经将 ${var} 用于定义在template.yaml. 但在这种情况下,所需的变量(ECS 的 TaskDefinition arn)未在template.yaml.

标签: amazon-web-servicesaws-cliaws-samaws-sam-cli

解决方案


推荐阅读