AWS 步骤函数并行
AWS step function Parallel
我正在试用 AWS 步进函数。我正在尝试创建什么。
- 从 dynamoDB 获取端点列表 (
https://user:password@server1.com, https://user2:password@server2.com, etc..
)
- 从每个域,我得到一个 ID 列表。
/all
- 对于结果中的每个 id,我想做一系列的 REST 等
https://user:password@server1.com/device/{id}
(当时每个域只有一个并行请求)[=22=]
- 将结果保存到 dynamoDB 中并检查是否为重复结果。
我知道如何进行其余调用并保存到 dynamoDB 等。
但问题还是找不到答案。
我如何为从 dynamoDB 获得的数组中的每个域并行启动 运行 /all?
AWS Step Functions 具有不可变状态。一旦创建,便无法更改。鉴于这一事实,您不能在并行状态中拥有动态数量的分支。
要解决这个问题,您可能需要稍微改变一下您的设计。与其使用单个 Step Function 解决此问题,不如考虑将其分解为两个不同的状态机,如下所示。
步骤函数 #1:检索端点列表
- 开始
- 任务:从 DynamoDB 检索端点列表
- 任务:对于每个端点,调用Step Function #2并传入端点
- 结束
您可以选择组合状态 #2 和 #3 以简化状态机和您的任务代码。
步骤函数 #2:执行 REST API 调用
- 开始 - 将单个端点作为输入状态
- 任务:对端点执行一系列 REST 调用
- Task:通过任务状态将结果存储在 DynamoDB 中
- 结束
我正在试用 AWS 步进函数。我正在尝试创建什么。
- 从 dynamoDB 获取端点列表 (
https://user:password@server1.com, https://user2:password@server2.com, etc..
) - 从每个域,我得到一个 ID 列表。
/all
- 对于结果中的每个 id,我想做一系列的 REST 等
https://user:password@server1.com/device/{id}
(当时每个域只有一个并行请求)[=22=] - 将结果保存到 dynamoDB 中并检查是否为重复结果。
我知道如何进行其余调用并保存到 dynamoDB 等。 但问题还是找不到答案。 我如何为从 dynamoDB 获得的数组中的每个域并行启动 运行 /all?
AWS Step Functions 具有不可变状态。一旦创建,便无法更改。鉴于这一事实,您不能在并行状态中拥有动态数量的分支。
要解决这个问题,您可能需要稍微改变一下您的设计。与其使用单个 Step Function 解决此问题,不如考虑将其分解为两个不同的状态机,如下所示。
步骤函数 #1:检索端点列表
- 开始
- 任务:从 DynamoDB 检索端点列表
- 任务:对于每个端点,调用Step Function #2并传入端点
- 结束
您可以选择组合状态 #2 和 #3 以简化状态机和您的任务代码。
步骤函数 #2:执行 REST API 调用
- 开始 - 将单个端点作为输入状态
- 任务:对端点执行一系列 REST 调用
- Task:通过任务状态将结果存储在 DynamoDB 中
- 结束