You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Step Functions中依据输入列表执行Lambda子集?

用AWS Step Functions实现批量调用Lambda的简便方案

直接用Map状态就能搞定,这是处理集合遍历任务的最优方式,完全匹配你的需求:

核心思路

Map状态会自动遍历输入中的列表元素,为每个元素执行指定的任务(这里就是调用你的Lambda函数),无需手动维护分支逻辑。

状态机配置示例

假设你的状态机输入格式为 {"ExecutionTypes": ["A", "B"]},对应的状态机JSON定义如下:

{
  "Comment": "遍历ExecutionTypes列表,逐个调用Lambda",
  "StartAt": "ProcessExecutionList",
  "States": {
    "ProcessExecutionList": {
      "Type": "Map",
      "ItemsPath": "$.ExecutionTypes",
      "MaxConcurrency": 2, // 可选:设置并发执行数,默认是全部并行
      "Iterator": {
        "StartAt": "InvokeTargetLambda",
        "States": {
          "InvokeTargetLambda": {
            "Type": "Task",
            "Resource": "arn:aws:states:::lambda:invoke",
            "Parameters": {
              "FunctionName": "你的Lambda函数ARN",
              "Payload": {
                "ExecutionType.$": "$"
              }
            },
            "End": true
          }
        }
      },
      "End": true
    }
  }
}

关键配置说明

  • ItemsPath: 指定要遍历的列表路径,这里对应输入中的ExecutionTypes数组;如果你的输入是纯数组(比如直接传["A","B"]),把ItemsPath改成$即可。
  • Iterator: 定义每个列表元素要执行的任务流,这里就是调用Lambda,通过"ExecutionType.$": "$"将当前遍历的元素作为ExecutionType的值传入Lambda。
  • MaxConcurrency: 可选参数,控制并行执行的数量,默认会同时执行所有列表元素,也可以设为1改成串行执行。

内容的提问来源于stack exchange,提问作者livsruss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 02:13:09