使用 SNS 控制 AWS Lambda 并发执行

Control AWS Lambda concurrent execution with SNS

在 SNS 文档中,我可以看到一些关于交付政策和接收率的信息:
http://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html#delivery-policy-maximum-receive-rate

但是此配置是否仅适用于 HTTP 端点或 Lambda 函数?
是否可以通过 SNS 控制 lambda 并发执行?

如评论中所述,目前这似乎没有实现,但似乎确实有一个相当简单的解决方法:

SNS → API Gateway (an HTTPS endpoint) → Lambda

可以说这是不必要的额外复杂性和费用,但如果您想要一个不需要外部魔法的本机解决方案,这可能是可行的方法。

您还必须处理 SNS 消息签名的验证以及订阅确认,这是直接 Lambda 集成不需要的...但这似乎是完成您的任务的一种方式寻找。请注意,您在此处的最佳配置将是 API 网关的区域端点,而不是边缘优化端点。

正如@mark-b 在评论中指出的那样,此功能刚刚在 AWS ReInvent 2017 期间宣布

Set Concurrency Limits on Individual AWS Lambda Functions: https://aws.amazon.com/about-aws/whats-new/2017/11/set-concurrency-limits-on-individual-aws-lambda-functions/


要设置限制,请导航到控制台中的 Lambda 函数

向下滚动,在最后您可以设置限制。