Aws lambda 在步进函数中将输入传递给迭代器并将其输出,同时保持迭代器输出
我有一个步进函数状态机,它启动并行lambda,一旦所有并行lambda都完成了,就会有一个最终的lambda被执行 示例定义Aws lambda 在步进函数中将输入传递给迭代器并将其输出,同时保持迭代器输出,aws-lambda,aws-step-functions,Aws Lambda,Aws Step Functions,我有一个步进函数状态机,它启动并行lambda,一旦所有并行lambda都完成了,就会有一个最终的lambda被执行 示例定义 { "Comment": "An example of the Amazon States Language using a map state to process elements of an array with a max concurrency of 2.", "StartAt": "Map", "States": { "Map": {
{
"Comment": "An example of the Amazon States Language using a map state to process elements of an array with a max concurrency of 2.",
"StartAt": "Map",
"States": {
"Map": {
"Type": "Map",
"ItemsPath": "$.my_list",
"Parameters": {
"list_item.$": "$$.Map.Item.Value",
"input_1.$": "$.input_1",
"input_2.$": "$.input_2"
},
"MaxConcurrency": 2,
"Next": "Final",
"Iterator": {
"StartAt": "Parallel Step",
"States": {
"Parallel Step": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "arn:aws:lambda:us-east-1:<>:function:parallel-lambda:$LATEST",
"Payload": {
"Input.$": "$"
}
},
"OutputPath": "$.Payload",
"End": true
}
}
}
},
"Final": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "arn:aws:lambda:us-east-1:<>:function:final-lambda:$LATEST",
"Payload": {
"Input.$": "$"
}
},
"End": true
}
}
}
现在,myFinal
lambda的输入将获得这些输出的列表。这是我想要的。但是有没有一种方法可以将一些输入传递到并行lambda到最终的lambda
理想情况下,我的最终lambda输入应该是
{'input_1': input_1_val,
'input_2': input_2_val,
'parallel_outputs': [{'statusCode': 200, 'n-successes': 5}, ...]
我知道我可以在并行lambdas输出中传递它,但在输出列表中重复相同的输入值这么多次似乎效率低下看起来您需要使用$.ResultPath而不是$.OutputPath 看
{'input_1': input_1_val,
'input_2': input_2_val,
'parallel_outputs': [{'statusCode': 200, 'n-successes': 5}, ...]