运行 如何并行运行?
How do you run functions in parallel?
我的愿望是根据一些自定义 select 语句从数据库中检索 x 条记录,输出将是一个 json 数组数据。然后我想将数组中的每个元素并行传递给另一个 lambda 函数。
所以如果返回1000条记录,需要并行执行1000个lambda函数(我将我的账户限制增加到我需要的)。如果 1000 次中有 30 次失败,则检索记录的主要任务需要了解它。
我正在努力整理这个简单的流程。
我目前使用 javascript 和 AWS Aurora。我不是在寻找检索数据的节点。js/javascript 代码,只是 AWS Step Functions 配置以及如何在每个函数中构建数组。
谢谢。
if 1000 records are returned, 1000 lambda functions need to be
executed in parallel
Step Functions 不支持您要实现的目标。状态机任务无法根据收到的输入进行修改。因此,例如,不能将并行任务配置为 add/remove 基于它在数组输入中接收到的项目数的函数。
您或许应该考虑使用 SQS Lambda trigger。从 DB 检索的记录数可以添加到 SQS 队列,然后将为收到的每个项目触发 Lambda 函数。
If 30 out of 1000 fail, the main task that was retrieving the records
needs to know about it.
有多种方法可以实现这一点。如果 Lambda returns 出错,SQS 不会从队列中删除项目。您可以根据需要配置 DLQ and RedrivePolicy。或者您可能想提出一个自定义解决方案,以保持对失败的 Lambda 的计数,以调用从数据库中获取记录的服务。
我的愿望是根据一些自定义 select 语句从数据库中检索 x 条记录,输出将是一个 json 数组数据。然后我想将数组中的每个元素并行传递给另一个 lambda 函数。
所以如果返回1000条记录,需要并行执行1000个lambda函数(我将我的账户限制增加到我需要的)。如果 1000 次中有 30 次失败,则检索记录的主要任务需要了解它。
我正在努力整理这个简单的流程。
我目前使用 javascript 和 AWS Aurora。我不是在寻找检索数据的节点。js/javascript 代码,只是 AWS Step Functions 配置以及如何在每个函数中构建数组。
谢谢。
if 1000 records are returned, 1000 lambda functions need to be executed in parallel
Step Functions 不支持您要实现的目标。状态机任务无法根据收到的输入进行修改。因此,例如,不能将并行任务配置为 add/remove 基于它在数组输入中接收到的项目数的函数。
您或许应该考虑使用 SQS Lambda trigger。从 DB 检索的记录数可以添加到 SQS 队列,然后将为收到的每个项目触发 Lambda 函数。
If 30 out of 1000 fail, the main task that was retrieving the records needs to know about it.
有多种方法可以实现这一点。如果 Lambda returns 出错,SQS 不会从队列中删除项目。您可以根据需要配置 DLQ and RedrivePolicy。或者您可能想提出一个自定义解决方案,以保持对失败的 Lambda 的计数,以调用从数据库中获取记录的服务。