Amazon web services AWS Step函数中的直通输入到输出
如何将AWS Step函数中Amazon web services AWS Step函数中的直通输入到输出,amazon-web-services,aws-step-functions,Amazon Web Services,Aws Step Functions,如何将AWS Step函数中任务状态的输入传递到输出 在阅读了AWS文档中的页面后,我使用了输入路径、结果路径和输出路径的各种组合 国家定义: "First State": { "Type": "Task", "Resource": "[My Lambda ARN]", "Next": "Second State", "InputPath": "$.someKey", "OutputPath": "$" } 输入: { "someKey": "s
任务
状态的输入传递到输出
在阅读了AWS文档中的页面后,我使用了输入路径
、结果路径
和输出路径
的各种组合
国家定义:
"First State": {
"Type": "Task",
"Resource": "[My Lambda ARN]",
"Next": "Second State",
"InputPath": "$.someKey",
"OutputPath": "$"
}
输入:
{
"someKey": "someValue"
}
预期结果
[empty]
我希望第一状态的输出
(以及第二状态的输入
)是
实际结果
[empty]
如果输入更复杂,例如
{
"firstKey": "firstValue",
"secondKey": "secondValue"
}
我希望转发所有内容,而不必担心(子)路径。规范中规定:
如果ResultPath的值为null,则表示该状态自身的原始输出被丢弃,其原始输入成为其结果
因此,我将我的状态定义更新为
"First State": {
"Type": "Task",
"Resource": "[My Lambda ARN]",
"Next": "Second State",
"ResultPath": null
}
因此,当传递输入示例Task
时,输入有效负载将被复制到输出,即使对于以下丰富对象也是如此:
{
"firstKey": "firstValue",
"secondKey": "secondValue"
}
我正在寻找一种解决方案,将输入从一个并行状态传递到另一个并行状态,上面的选项非常有效。
例如,我的step函数是这样的…tas1->parallel task2->parallel trask3->task4。因此,当它从parallel task3开始时,输入值被清除,因此ptask3失败。通过上面的选项,我能够将相同的输入从ptask2传递到ptas3。对于那些发现自己在这里使用CDK的人,解决方案是使用显式的
aws_stepfunctions.JsonPath.DISCARD
enum,而不是None/null
来自aws\U cdk导入的(
aws_函数,
aws\u步骤功能\u任务,
)
aws_stepfunctions_tasks.LambdaInvoke(
自己
“我的_函数”,
lambda_函数=lambda_函数,
结果路径=aws\U stepfunctions.JsonPath.DISCARD,
)
你好,@matsev。你能回答吗?这和你问的很相似。谢谢斯帕特尔,这不是一个答案,更多的是对你所指答案的评论。请删除此答案,并在matsev答案上发表评论