绕过SNS API调用限制以发布

时间:2016-02-09 06:56:04

标签: amazon-sns

我需要同时向潜在的数千个设备端点发布一条唯一的消息。

该消息是唯一的,因此我无法将端点分组到主题...

虽然我找不到任何文档,但似乎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调用会很好......

3 个答案:

答案 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)