我有一个step函数,从获取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"
}
}但这将集群arn解释为"$.arn“。我如何引用我刚刚从第一个任务收到的arn?
发布于 2019-05-30 19:00:27
来自文档
使用“参数”字段创建作为输入传递的键值对的集合。每个值可以是包含在状态机定义中的静态值,也可以是从输入或具有路径的上下文对象中选择的值。对于使用路径选择值的键值对,密钥名必须以.$结尾。
所以我觉得你需要:
"Parameters": {
"Cluster.$": "$.arn",
"TaskDefinition": "ecs_task_def"
},https://stackoverflow.com/questions/56382710
复制相似问题