如何在AWS Step Functions中通过task
将输入传递给输出?
我知道this question和文档:
如果ResultPath的值为null,则意味着该州自己的原始输出将被丢弃,其原始输入将成为其结果。
但是我需要的是:
{
"input": "my_input"
}
{
"output": "my_output"
}
我需要将以下json传递到下一个状态:
{
"input": "my_input",
"output": "my_output"
}
答案 0 :(得分:1)
有两个建议,Use ResultPath to Replace the Input with the Result,可以让您
如果未指定ResultPath,则默认行为类似于您已指定
"ResultPath": "$"
。因为这告诉状态用结果替换整个输入,所以状态输入完全由任务结果中的结果替换。
要使此选项起作用,Lambda函数必须返回所需的响应:
{
"input": "my_input",
"output": "my_output"
}
或者在《步骤函数》开发人员指南中Use ResultPath to Include the Result with the Input。接下来,如果您将Lambda的返回值更改为仅包含"my_output"
,则可以指定"ResultPath": "$.output"
以获得所需的结果:
{
"input": "my_input",
"output": "my_output"
}
答案 1 :(得分:0)
对于遇到此问题的任何人,我都无法做到,但您可以做的是according to the docs:
{
"States": {
"my-state": {
"Type": "task",
"ResultPath": "$.response"
}
}
}
这会将lambda返回的所有内容附加到response
节点中,结果是:
{
"input": "my_input",
"response": {
"output": "my_output"
}
}