2

我试图弄清楚如何将多个输入传递给我的 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”步骤中看到的那样。

4

1 回答 1

6

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

如果您从任务返回数据并且未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属性下的现有输入结构中。

于 2017-12-21T15:25:16.790 回答