首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda时态负载平衡

AWS Lambda时态负载平衡
EN

Stack Overflow用户
提问于 2019-11-20 11:48:40
回答 1查看 57关注 0票数 1

我有一个AWS函数,每1分钟调用一次,每次都有>1000个SNS事件。这是一个问题,因为我的帐户并发设置为3000,所以如果我开始添加更多的作业,那么最终我将有>3000并发Lambda实例。

每个作业大约需要2-5秒才能完成,这意味着在每1分钟的窗口内,并发限制只会在前5秒内受到威胁,而剩下的55秒我将有0的并发性。

如果我为lambda设置了并发限制(例如1000),它会处理第一个1000个SNS事件,然后在并发性释放后自动获取其余部分吗?我是否只为实际运行时而不是等待并发性的时间而被收取费用呢?

否则,AWS是否允许我将作业负载分散在1分钟的窗口中,这样我就可以每隔5秒钟用作业总数的子集调用lambda了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 11:52:11

,如果我为lambda设置了并发限制(例如,1000),它会处理第一个1000个SNS事件,然后在并发性释放后自动获取其余部分吗?我是否只为实际运行时而不是等待并发性的时间而被收取费用呢?

是。设置并发限制对于您的用例无疑是有用的,并且是可行的。这是并发限制实际存在的原因之一:)

不幸的是,您不能利用SNS批处理的优势,因为它总是发送一个也是唯一的事件。您可以做的是将SQS队列与SNS主题挂钩,让Lambda函数订阅SQS队列,然后可以利用批处理(最大批处理大小为10),大大减少并发Lambda执行量,但仍然需要设置并发限制,以确保不使用所有可用的并发性。

否则,AWS是否允许我将作业负载分散在1分钟的窗口中,这样我就可以每隔5秒钟用作业总数的子集调用lambda了吗?

没有,但这是没有必要的,因为以上所述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58953674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档