nik*_*ndr 7 amazon-s3 amazon-web-services amazon-sns aws-lambda
还有其他人解决了以下问题吗?
我有SNS主题 填充了来自S3的事件,并且有关于此主题订阅的Lambda函数,当有数千个事件被放入此主题时,lambda函数因超出并发限制而受到限制.
我不想要求并发执行的限制增加,但我会减少主题的并发消耗,但我没有找到信息如何做到这一点.谢谢.
有关SNS的几个选项:
1)SNS最大接收率
设置SNS最大接收速率.这将限制发送给订阅者的SNS消息,但如果您有这么多消息,它们将被丢弃,然后才能处理它们,这可能不是一个很好的选择.从文档:
您可以通过设置"最大接收速率"设置来设置Amazon SNS每秒向订阅端点发送的最大邮件数.Amazon SNS保留等待交付长达一小时的消息.保留超过一小时的邮件将被丢弃.
如果您一次只获得数千个事件,则将最大接收速率设置为Lambda的默认并发执行限制为"100"可能值得一试.
正如@kndrk所说,这种限制目前仅适用于SNS主题的HTTP/HTTPS订阅者.要解决此问题,您可以通过AWS API Gateway公开lambda函数,并将该端点订阅到SNS主题,而不是直接订阅lambda函数.
2)来自SQS的流程
将SQS队列订阅到SNS主题并处理来自队列的消息,而不是直接来自sns主题.SQS ReceiveMessage的单个调用一次只能处理10条消息,因此您可以更轻松地进行限制.
值得注意的是,您可以将S3 Events直接发布到AWS Lambda.
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |