首页 > 解决方案 > 是否有 AWS 服务来分块和并发执行对 Lambda 的批量请求?

问题描述

这是一个用例:客户端请求 lambda 来计算批量有效负载。

想法是将这个批量有效负载分块并多次调用相同的 lambda。

我已经在客户端通过分块和重新收集答案来完成它,合并就好像它是独一无二的。

现在我想知道我是否可以利用一些 AWS 服务来执行这种分块、并行化到 lambda 并将其作为一个独特的请求返回。

另一方面(如果 AWS 盒子里没有任何东西)我可能会考虑自己开发一个新的 lambda 来执行上述操作

标签: amazon-web-servicesrequestaws-lambda

解决方案


AWS Step 功能与您正在寻找的功能相近。您可以编写自己的执行 Lambda 函数的工作流程(顺序或并行)。在您的情况下,您需要并行处理每个块。它将如下所示:

使用 AWS Step Functions 并行处理块

注意:我不知道使用 AWS Step Functions 并行动态运行多个 Lambda 函数的方法。如果将块拆分为 n 个并行函数不是您的选择。我建议您使用 SNS 并行触发所有功能,并在每个功能完成后检查其他功能是否已将其输出保存到商店(S3/Dynamodb/Mysql ...等)。如果是,则对所有输出进行分组并保存它们的聚合,否则什么也不做。唯一的缺点是您不能在 HTTP 生命周期内执行此操作。用户需要拉取批处理的状态。


推荐阅读