使用 AWS 步骤函数调用多个 Lambda

问题描述

我有两个 lambda 表达式 L1 和 L2。我正在 L1 中启动状态机。我有 L1 的环境变量,即 E1。基本上 E1 是空间分隔值列表,我需要在 L1 中执行一些哈希函数,对于每个值,我需要使用该值和 Hash(value) 作为输入触发 Lambda L2 的单独实例

例如:E1 - "1 2 3" 和 hash(1) = 堆栈,hash(2) = 结束,hash(3) = 流 应该使用 (i,hash(i)) 作为 L2 的输入/有效负载触发 L2 的三个实例

如何使用阶梯函数实现这一点

解决方法

您可以使用 Map 状态执行此操作。最简单的方法是让第一个函数的输出是第二个函数的输入数组。所以是这样的:

[
  {
    i: 1,iHash: 'hashed 1'
  },{
    i: 2,iHash: 'hashed 2'
  }
  .
  .
  .
]

Map 状态下,您将 iterator 值设置为来自输出的数组。数组中每个元素的值将是 Map 状态内第一个状态的输入。在 Map 状态中,您只需要另一个 Task 状态,即您的第二个 Lambda 函数,并将 $ 传递给 Payload