Amazon web services 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 Step函数中
任务
状态的输入传递到输出

在阅读了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答案上发表评论