我有一个步进功能,我想从那里获取ECS群集的resourceArn,然后在该群集上调用任务。
但是,我很难一步一步地动态传递arn。
{
"StartAt": "GetArnLambda",
"States": {
"GetArnLambda": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:AWS_ACCOUNT_ID:function:FUNCTION_NAME",
"Next": "ecs_task"
},
"ecs_task": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "$.arn",
"TaskDefinition": "ecs_task_def"
},
"End": true
}
}
我从GetArnLambda
{
"name": "GetArnLambda",
"output": {
"arn": "arn:aws:ecs:us-east-1:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME"
}
}
但这将Cluster arn解释为“ $ .arn”。如何引用我刚从第一个任务中收到的信息?
答案 0 :(得分:1)
使用“参数”字段创建作为输入传递的键值对的集合。每个值都可以是您包含在状态机定义中的静态值,也可以是从输入或带有路径的上下文对象中选择的。对于使用路径选择值的键值对,键名必须以。$ 结尾。
所以我认为您需要:
"Parameters": {
"Cluster.$": "$.arn",
"TaskDefinition": "ecs_task_def"
},