问题描述
我有一个带有 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