1

我正在尝试 AWS step 功能。我正在尝试创建的内容。

  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}(当时只有一个并行请求到每个域)
  4. 将结果保存在 dynamoDB 中并检查它是否是重复的结果。

我知道如何进行其余的调用并保存到 dynamoDB 等。但问题或无法找到答案。如何开始为从 dynamoDB 获得的数组中的每个域并行运行 /all?

4

1 回答 1

3

AWS Step Functions 具有不可变状态。一旦创建,它们就无法更改。鉴于这一事实,您的 Parallel 状态下不能有动态数量的分支。

为了解决这个问题,您可能希望以不同的方式处理您的设计。与其使用单个 Step Function 解决此问题,不如考虑将其拆分为两个不同的状态机,如下所示。

步骤功能 #1:检索端点列表

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

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

步骤功能 #2:执行 REST API 调用

  1. 开始-将单个端点作为输入状态
  2. 任务:针对端点执行一系列 REST 调用
  3. 任务:通过任务状态将结果存储在 DynamoDB 中
  4. 结尾
于 2017-11-09T15:37:07.410 回答