如何将输入传递给多个ARN(aws步骤功能)?

问题描述 投票:1回答:1

我试图弄清楚如何将多个输入传递给我的ARN。但似乎我做不到。

以下是我的机器规格

{
    "StartAt": "DemoStateFunction",
    "Version": "1.0",
    "States": {
        "DemoStateFunction": {
            "Type": "Task",
            "Resource": "ARN-Demo-Function",
            "InputPath": "$.demostate1",
            "Next": "DemoStateFunction2"
        },
        "DemoStateFunction2": {
            "Type": "Task",
            "Resource": "ARN-Demo-Function",
            "InputPath": "$.demostate2",
            "End": true         
        }
    }
}

这是我的意见

{
    "demostate1": {
        "data": "john",
    },
    "demostate2": {
        "data": "doe"
    }
}

执行此任务时。它成功地检索了我的demostate1数据,然而它似乎无法看到demostate2,正如我在“TaskStateEntered”步骤中看到的那样。

amazon-web-services aws-lambda aws-step-functions
1个回答
4
投票

机器状态数据从一个状态传递到另一个状态。

如果从任务返回数据并且未在状态中指定ResultPath属性,则任务的输出将成为下一个状态的输入。这是你的demostate2丢失的地方。

来自:http://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-input-output-processing.html

任务结果作为状态的输出(它成为下一个任务的输入)一起发送。

所以,你需要在DemoStateFunction状态下使用类似的东西将DemoStateFunction的结果合并到输入数据中:

    "DemoStateFunction": {
        "Type": "Task",
        "Resource": "ARN-Demo-Function",
        "InputPath": "$.demostate1",
        "ResultPath": "$.demooutput1",
        "Next": "DemoStateFunction2"
    },

这将从任务中获取结果并将其合并到demooutput1属性下的现有输入结构中。

© www.soinside.com 2019 - 2024. All rights reserved.