您如何并行运行功能?

时间:2019-02-04 19:42:22

标签: amazon-web-services aws-step-functions

我的愿望是根据一些自定义的 select 语句从数据库中检索x条记录,输出将是json数据数组。然后,我想将数组中的每个元素并行传递给另一个lambda函数。

因此,如果返回1000条记录,则需要并行执行1000个lambda函数(我将帐户限制增加到所需的数量)。如果每千个记录中有30个失败,则检索记录的主要任务需要了解它。

我正在努力把这个简单的流程放在一起。

我目前使用javascript和AWS Aurora。我不是在寻找可以检索数据的node.js / javascript代码,只是在寻找AWS Step Functions配置以及如何在每个函数中构建数组。

谢谢。

1 个答案:

答案 0 :(得分:2)

  

如果返回1000条记录,则需要1000个lambda函数   并行执行

Step Functions不支持您要实现的目标。无法根据收到的输入来修改状态机任务。因此,例如,不能将并行任务配置为基于在数组输入中接收到的项目数来添加/删除函数。

您可能应该考虑使用SQS Lambda trigger。从数据库检索到的记录数可以添加到SQS队列中,这将为接收到的每个项目触发Lambda函数。

  

如果每千个记录中有30个失败,则检索记录的主要任务   需要了解它。

有多种方法可以实现此目的。如果Lambda返回错误,则SQS不会从队列中删除项目。您可以根据需要配置DLQRedrivePolicy。或者,您可能想提出一个自定义解决方案,以确保失败的Lambda能够调用从数据库获取记录的服务。