如何将步骤中的输入插入到json结构中并传递给步骤函数中的下一步?

时间:2018-06-01 03:23:05

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

我想在步骤函数中做的是我的第一步生成输出,在下一步中我希望将输出插入到json中并作为输出生成。

例如:

第1步的输出:HelloWorld

第2步的输入:HelloWorld

第2步的输出:

myData : {
 data : HelloWorld
}

我已经尝试过以下状态机,但它失败了。

        {
          "Comment": "Sample State Machine",
          "StartAt": "StartTask",
          "States": {
              "StartTask": {
                "Type": "Pass",
                "Result": "Hello World!",
                "Next": "RefactorTask"
            },
            "RefactorTask": {
            "Type": "Pass",
                "Result" : {
                "$" : "$"
            },
            "ResultPath" : "$.myData.data"
        }
    }
}

错误:

 {
  "error": "States.ReferencePathConflict",
  "cause": "Unable to apply step \"myData\" to input \"Hello World!\""
}

1 个答案:

答案 0 :(得分:1)

第一个州的输出是“ Hello World”。

意味着RefactorTask的输入是……“ Hello World”!这是一个字符串,不是对象,因此它没有任何属性。

您尝试直接在"ResultPath"中设置StartTask而不是添加一个 Pass状态?

例如

{
      "Comment": "Sample State Machine",
      "StartAt": "StartTask",
      "States": {
          "StartTask": {
            "Type": "Pass",
            "Result": "Hello World!",
            "ResultPath" : "$.myData.data",
            "Next": "Whatever is your next task"
        }
}

否则,您可以在并行状态下执行此操作...但这似乎过大了,不是吗?