AWS 步骤函数映射任务参数

问题描述

我有一个带有 map 任务的 step 函数,众所周知,map 必须处理来自 ItemsPath 的数组,我如何才能将整个输入传递给 lambda 而不仅仅是数组。

{"StartAt": "Find","States": {
"Find": {
  "Type": "Map","MaxConcurrency": 0,"InputPath": "$","ItemsPath": "$.Payload.contacts","Iterator": {
     "StartAt": "func","States": {
       "func": {
         "Type": "Task","Resource": "arn:aws:lambda:us-east-1:....","Parameters": {
        
           
            "Input": {
              "Payload":{
                "contact.$": "$"
              }
            }
          },"End": true
       }
     }
  },"ResultPath": "$.Input","End": true
}}},

我希望在事件参数中传递整个输入

解决方法

如果您使用 Iterator,它会将 ItemsPath 中的值作为输入传递给 Lambda。您可以使用 Parameters 模块将输入转换为 lambda 并添加整个输入。我自己没有尝试过,但我很确定应该这样做。

https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html