【问题标题】:Passthrough input to output in AWS Step Functions在 AWS Step Functions 中将输入传递到输出
【发布时间】:2018-05-18 22:48:02
【问题描述】:

如何将 AWS Step Functions 中 Task 状态的输入传递到输出?

在阅读了 AWS 文档中的 Input and Output Processing 页面后,我使用了 InputPathResultPathOutputPath 的各种组合。

状态定义:

"First State": {
    "Type": "Task",
    "Resource": "[My Lambda ARN]",
    "Next": "Second State",
    "InputPath": "$.someKey",
    "OutputPath": "$"
}

输入:

{
    "someKey": "someValue"
}

预期结果

我希望First State 的输出(以及Second State 的输入)为

{
    "someKey": "someValue"
}

实际结果

[empty]

如果输入更复杂,例如

{
    "firstKey": "firstValue",
    "secondKey": "secondValue"
}

我想转发所有内容而不用担心(子)路径。

【问题讨论】:

  • 你好,@matsev。你能回答my question吗?和你问的差不多。谢谢

标签: amazon-web-services aws-step-functions


【解决方案1】:

Amazon States Language 规范中声明:

如果 ResultPath 的值为 null,这意味着状态自己的原始输出被丢弃,其原始输入成为它的结果。

因此,我将状态定义更新为

"First State": {
    "Type": "Task",
    "Resource": "[My Lambda ARN]",
    "Next": "Second State",
    "ResultPath": null
}

因此,当传递输入示例 Task 时,输入有效负载将被复制到输出,即使对于像这样的丰富对象:

{
    "firstKey": "firstValue",
    "secondKey": "secondValue"
}

【讨论】:

    【解决方案2】:

    对于那些发现自己在这里使用 CDK 的人,解决方案是使用显式 aws_stepfunctions.JsonPath.DISCARD 枚举而不是 None/null。

    from aws_cdk import (
        aws_stepfunctions,
        aws_stepfunctions_tasks,
    )
    
    aws_stepfunctions_tasks.LambdaInvoke(
        self,
        "my_function",
        lambda_function=lambda_function,
        result_path=aws_stepfunctions.JsonPath.DISCARD,
    )
    

    https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.JsonPath.html#static-discard

    【讨论】:

      【解决方案3】:

      我正在寻找一种解决方案,将输入从一个并行状态传递到另一个并行状态,并且上述选项非常有效。 例如我的步进函数是这样的……tas1->parallel task2 -> parallel trask3 -> task4。因此,当它从并行任务 3 开始时,输入值被清除,因此 ptask3 失败。使用上述选项,我能够将相同的输入从 ptask2 传递到 ptas3。

      【讨论】:

      • 嗨 spatel,这本身并不是一个答案,更多的是对您所指的答案的评论。请删除此答案并作为对 matsev 答案的评论发布
      猜你喜欢
      • 2020-02-09
      • 2023-04-06
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多