AWS 地图状态输入管理

AWS Map State Input Management

我目前正在使用 AWS 步函数进行一些测试,尽管它易于使用,但我无法正确管理地图状态的输入:

这是提供的输入:

{
"keep": "elementToKeep",
  "my_array": [
    "element0",
    "element1",
    "element2"
  ]
}

我想使地图状态遍历 my_array 以便内部状态作为输入接收

现在我只能提供 "element0"(在第一次交互时)作为输入,甚至无法使用 JSON 语法正确格式化它。

下面我粘贴了状态机JSON结构。我更熟悉工作流视图,但非常感谢任何帮助。

{
  "StartAt": "Map",
  "States": {
    "Map": {
      "Type": "Map",
      "End": true,
      "Iterator": {
        "StartAt": "Pass",
        "States": {
          "Pass": {
            "Type": "Pass",
            "End": true
          }
        }
      },
      "ItemsPath": "$.my_array"
    }
  }
}

经过几个小时的挖掘,我找到了解决方案:
出于某种原因,作为内部函数输入提供的数组项(此处为 element0element1 等...)被映射为 $$.Map.Item.Value(出于某些原因)。
所以如果需要在数组元素旁边提供其他参数,在“转换数组项”字段中放置:

{
  "element.$": "$$.Map.Item.Value",
  "keep.$": "$.keep"
}

产生了问题中指定的所需输入,因此我将问题标记为已关闭。

在此 link 中可以找到此答案的来源。