AWS 步骤函数结果操作

AWS step functions result manipulation

我有一个 AWS 步骤函数如下 -

{
  "StartAt": "S1",
  "States": {
    "S1": {
      "Type": "Pass",
      "Parameters": {
        "Fruits.$": "$.Junk.Fruits"
      },
      "ResultPath": "$.Main.Fruits",
      "Next": "S2"
     
    },
    "S2": {
    "Type": "Pass",
    "OutputPath": "$.Main",
    "End": true
  }
  }
}

我的输入如下-

{
    "Main": {
        "Field": "field",
        "Field2": "field2",
        "Fruits":[]
    },
    "Junk": {
        "Fruits":["apple", "banana", "papaya", "grapes"]
    }
}

我得到的输出结果如下-

{
  "Field": "field",
  "Field2": "field2",
  "Fruits": {
    "Fruits": [
      "apple",
      "banana",
      "papaya",
      "grapes"
    ]
  }
}

我想要的输出如下-

{
    "Field": "field",
    "Field2": "field2",
    "Fruits": [ "apple", "banana", "papaya", "grapes" ]
}

能否请您修正步进函数,以便我得到我想要的输出。 请不要使用 lambda 函数,也请不要修改输入。

您可以像这样使用 Parameters 来实现您想要的输出:

{
  "StartAt": "S1",
  "States": {
    "S1": {
      "Type": "Pass",
      "Parameters": {
        "Field.$": "$.Main.Field",
        "Field2.$": "$.Main.Field2",
        "Fruits.$": "$.Junk.Fruits"
      },
      "End": true
    }
  }
}

但是,如果您要合并两个 JSON 对象(不知道密钥),恐怕 AWS Step Functions 尚不支持它。