Gus*_*pes 6 amazon-web-services aws-step-functions
如何将我的输入传递到taskAWS Step Functions 中的输出?
我知道这个问题,以及文档:
如果 ResultPath 的值为 null,则意味着该状态自己的原始输出被丢弃,其原始输入成为其结果。
但我需要的是:
{
"input": "my_input"
}
Run Code Online (Sandbox Code Playgroud)
{
"output": "my_output"
}
Run Code Online (Sandbox Code Playgroud)
我需要将以下 json 传递给下一个状态:
{
"input": "my_input",
"output": "my_output"
}
Run Code Online (Sandbox Code Playgroud)
想到了两个建议,要么使用 ResultPath 将输入替换为 Result,它允许您
如果您未指定 ResultPath,则默认行为就像您已指定
"ResultPath": "$". 因为这告诉状态用结果替换整个输入,状态输入完全被来自任务结果的结果替换。
要使此选项起作用,Lambda 函数必须返回所需的响应:
{
"input": "my_input",
"output": "my_output"
}
Run Code Online (Sandbox Code Playgroud)
或者,在 Step Functions 开发人员指南中使用 ResultPath 将结果包含在输入中。接下来,如果您将 Lambda 的返回值更改为仅包含"my_output"您可以指定"ResultPath": "$.output"以实现所需的结果:
{
"input": "my_input",
"output": "my_output"
}
Run Code Online (Sandbox Code Playgroud)
对于遇到这个问题的任何人,根据文档,不可能按照我的要求进行操作,但是您可以做的是:
{
"States": {
"my-state": {
"Type": "task",
"ResultPath": "$.response"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会将 lambda 返回的任何内容附加到response节点中,从而导致:
{
"input": "my_input",
"response": {
"output": "my_output"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4151 次 |
| 最近记录: |