AWS步骤功能并行

时间:2017-11-06 23:21:04

标签: node.js amazon-web-services aws-lambda aws-step-functions

我正在尝试AWS步骤功能。我想要创造的东西。

  1. 从dynamoDB(https://user:password@server1.com, https://user2:password@server2.com, etc..
  2. 获取端点列表
  3. 从每个域中,我得到一个id列表。 /all
  4. 对于结果中的每个id,我想做一系列REST等https://user:password@server1.com/device/{id}(当时每个域只有一个请求并行)
  5. 将结果保存在dynamoDB中,并检查结果是否重复。
  6. 我知道如何进行休息调用并保存到dynamoDB等。 但问题还是找不到答案的是。 如何从dynamoDB中获取的数组中的每个域并行开始/并行运行?

1 个答案:

答案 0 :(得分:3)

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

要解决这个问题,您可能希望以不同的方式处理您的设计。不要用单个步骤函数解决这个问题,而是考虑将它分成两个不同的状态机,如下所示。

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

  1. 开始
  2. 任务:从DynamoDB中检索端点列表
  3. 任务对于每个端点,调用步骤功能#2并传入端点
  4. 结束
  5. 您可以选择组合状态#2和#3来简化状态机和任务代码。

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

    1. 开始 - 将单个端点作为输入状态
    2. 任务:对端点
    3. 执行一系列REST调用
    4. 任务:商店通过任务状态
    5. 生成DynamoDB
    6. 结束