Amazon web services 使用lambda创建并行步长函数

Amazon web services 使用lambda创建并行步长函数,amazon-web-services,aws-lambda,aws-sdk,aws-step-functions,Amazon Web Services,Aws Lambda,Aws Sdk,Aws Step Functions,我对AWS的阶跃函数部分有一个问题 我有一个监视和更新数据库中数据的功能。但因为我们只能有1000个项目,因为我们可以有100万个项目要更新,所以我想用lambda管理10000或100000个项目 但最佳的解决方案应该是并行地管理它们,以便同时更新每个数据并一起完成 因此,我想使用aws sdk创建一个Lambda函数,该函数应创建一个带有X个任务的并行步骤函数,每个任务将管理数据库的10000或100000项 但当我阅读aws sdk文档时,似乎无法创建并行步骤函数,即使是从模板创建 所以我

我对AWS的阶跃函数部分有一个问题

我有一个监视和更新数据库中数据的功能。但因为我们只能有1000个项目,因为我们可以有100万个项目要更新,所以我想用lambda管理10000或100000个项目

但最佳的解决方案应该是并行地管理它们,以便同时更新每个数据并一起完成

因此,我想使用aws sdk创建一个Lambda函数,该函数应创建一个带有X个任务的并行步骤函数,每个任务将管理数据库的10000或100000项

但当我阅读aws sdk文档时,似乎无法创建并行步骤函数,即使是从模板创建

所以我的问题是,有没有可能用aws sdk从Lambda函数创建并行步长函数?还是你有更好的办法来解决我的问题

提前谢谢

更新:为了给你更多的信息,我的问题是我必须在每个月的第一天在我的数据库中更新一个插入未知数据的API,问题是我需要调用一个需要15秒才能返回数据的API(这不是我们的API,所以我无法尝试升级返回时间)

如果我只使用Lambda函数,它将在15分钟后超时

突然,我想到使用步长函数为每个数据执行Lambda函数,但问题是,如果我们有很多数据,可能需要24小时以上,我想找到一个解决方案,我可以并行执行Lambda函数以优化时间,所以我想到了步长函数的并行任务

但是因为数据的数量每个月都会改变,我不知道如何动态地增加或减少我的步长函数的分支数,这就是为什么我想到从另一个Lambda生成我的步长函数

我有一个监视和更新数据库中数据的功能

我想你需要看的是某种用户/数据事件?看什么?更新什么

在我给你一些架构建议之前,你能提供更多的信息吗

顺便说一下,编排/调用Lambda函数是步骤函数,而不是其他步骤


最新答复:

因此,您似乎面临Lambda最大执行时间的15分钟硬限制。我可以看到三种方法:

  • 不使用Lambda函数,而是使用ECS容器或EC2实例来处理大量的数据处理和数据库写入。然而,这需要大量的代码重写和基础架构/体系结构更改

  • 找出一种分解输入数据的方法,这样您就可以分散处理多个Lambda函数实例,即:输入数据->Lambda分解任务->SQS消息->Lambda处理每个任务。但我担心的是,分解输入数据的任务可能也需要大量的时间

  • 在Lambda执行超时之前,标记当前处理的位置,使用原始事件+位置偏移调用相同的Lambda函数。下一个Lambda实例将从上一次执行停止的位置获取数据处理


  • 我更新了我的问题我更新了我的答案。最近我使用方法#3来处理一个200MB的行分隔JSON文件,该文件包含1.08M条记录,总处理时间超过50分钟,它使用了4个连续的Lambda执行。感谢您的帮助,我想我已经找到了解决方案,API需要15秒才能返回一些数据,响应的格式是什么?JSON?行分隔json?它是纯文本,但我们使用脚本以json格式返回它