我需要同时向潜在的数千个设备端点发布一条唯一的消息。
该消息是唯一的,因此我无法将端点分组到主题...
虽然我找不到任何文档,但似乎SNS仅限于10个并发API发布请求。
超过10个并发请求返回
RequestError: send request failed
caused by: Post https://sns.us-east-1.amazonaws.com/: dial tcp 54.239.24.226:443: i/o timeout
然后似乎阻止了我的IP短时间的进一步请求......
我计划让整个app后端成为“无服务器”,这意味着Lambda中会有一个计划任务来调用SNS发布...
1000个SNS发布请求/ 10个并发= 100个批次...这意味着需要100 * x秒来处理所有到达API网关和Lambda超时限制的消息(并且还会增加成本)
围绕这些限制是否有好方法?增加允许的并发API调用会很好......
答案 0 :(得分:1)
Amazon SNS does not enforce a rate limit用于发布呼叫。有时,SNS会限制请求,但服务将respond with HTTP 400和AWS SNS请求ID。
您发布的错误消息看起来就像您和SNS端点之间的上游一样,是对您的呼叫进行速率限制。检查您和SNS端点之间是否有代理或防火墙,或与网络管理员联系。
答案 1 :(得分:0)
之前我遇到过这样的事情,解决方案是启动了数十个t2.micro或t2.nano实例。因为从ec2到aws的请求也有限制。
答案 2 :(得分:0)