我想弄清楚如何将多个输入传递给我的ARN。但似乎我不能这样做。
以下是我的机器规格
{
"StartAt": "DemoStateFunction",
"Version": "1.0",
"States": {
"DemoStateFunction": {
"Type": "Task",
"Resource": "ARN-Demo-Function",
"InputPath": "$.demostate1",
"Next": "DemoStateFunction2"
},
"DemoStateFunction2": {
"Type": "Task",
"Resource": "ARN-Demo-Function",
"InputPath": "$.demostate2",
"End": true
}
}
}
这是我的输入
{
"demostate1": {
"data": "john",
},
"demostate2": {
"data": "doe"
}
}
执行此任务时。它成功地检索了我的demostate1数据,然而它似乎无法看到demostate2,正如我在“TaskStateEntered”步骤中看到的那样。
答案 0 :(得分:4)
机器状态数据从一个状态传递到另一个状态。
如果从任务返回数据并且未在状态中指定ResultPath
属性,则任务的输出将成为下一个状态的输入。这是您的demostate2
丢失的地方。
任务结果作为状态输出(它成为下一个任务的输入)发送。
因此,您需要在DemoStateFunction
州使用类似的内容将DemoStateFunction
的结果合并到输入数据中:
"DemoStateFunction": {
"Type": "Task",
"Resource": "ARN-Demo-Function",
"InputPath": "$.demostate1",
"ResultPath": "$.demooutput1",
"Next": "DemoStateFunction2"
},
这将从任务中获取结果并将其合并到demooutput1
属性下的现有输入结构中。