AWS 步骤函数结果操作

时间:2021-01-11 23:31:11

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

我有一个 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 函数,也不要修改输入。

1 个答案:

答案 0 :(得分:1)

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

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

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