AWS 步骤函数并行

AWS step function Parallel

我正在试用 AWS 步进函数。我正在尝试创建什么。

  1. 从 dynamoDB 获取端点列表 (https://user:password@server1.com, https://user2:password@server2.com, etc..)
  2. 从每个域,我得到一个 ID 列表。 /all
  3. 对于结果中的每个 id,我想做一系列的 REST 等 https://user:password@server1.com/device/{id}(当时每个域只有一个并行请求)[​​=22=]
  4. 将结果保存到 dynamoDB 中并检查是否为重复结果。

我知道如何进行其余调用并保存到 dynamoDB 等。 但问题还是找不到答案。 我如何为从 dynamoDB 获得的数组中的每个域并行启动 运行 /all?

AWS Step Functions 具有不可变状态。一旦创建,便无法更改。鉴于这一事实,您不能在并行状态中拥有动态数量的分支。

要解决这个问题,您可能需要稍微改变一下您的设计。与其使用单个 Step Function 解决此问题,不如考虑将其分解为两个不同的状态机,如下所示。

步骤函数 #1:检索端点列表

  1. 开始
  2. 任务:从 DynamoDB 检索端点列表
  3. 任务对于每个端点,调用Step Function #2并传入端点
  4. 结束

您可以选择组合状态 #2 和 #3 以简化状态机和您的任务代码。

步骤函数 #2:执行 REST API 调用

  1. 开始 - 将单个端点作为输入状态
  2. 任务:对端点执行一系列 REST 调用
  3. Task:通过任务状态将结果存储在 DynamoDB 中
  4. 结束