【发布时间】:2021-02-07 23:43:18
【问题描述】:
我正在使用 AWS Step Function 来调用 Fargate 容器。 ECS 任务定义定义了几个环境变量,一些具有固定值,一些来自 Systems Manager Parameter Store。状态机使用ContainerOverrides 添加了一个额外的环境变量。
不幸的是,这似乎是替换而不是添加到任务定义中指定的环境变量。
如果我没有在步骤定义中定义任何环境变量,那么任务定义中的环境变量会在运行时存在。如果我在步骤定义中定义了一个变量,那么只有来自步骤定义的变量在运行时存在。
如何让 Fargate/ECS/Step Functions 合并环境变量而不是全部替换?
状态机
{
"Comment": "Sample State Machine",
"StartAt": "Prerequisites",
"States": {
"Prerequisites": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "arn:aws:ecs:us-west-2:1232123123:cluster/step-function-executor",
"TaskDefinition": "step-function-generic-script-executor",
"LaunchType":"FARGATE",
"NetworkConfiguration": {
"AwsvpcConfiguration" : {
"AssignPublicIp" : "DISABLED",
"SecurityGroups" : [
"sg-123",
"sg-456"
],
"Subnets" : [
"subnet-123" ,
"subnet-456"
]
}
},
"Overrides": {
"ContainerOverrides": [
{
"Name": "step-function-generic-script-container",
"Environment": [
{
"Name": "STEP_SCRIPT_NAME",
"Value": "db-daily-backup-01-prereq"
}
]
}
]
}
},
"End": true
}
}
}
任务定义
【问题讨论】:
标签: amazon-web-services amazon-ecs aws-step-functions