【发布时间】:2021-04-23 11:17:24
【问题描述】:
我有一个完全围绕 AWS Lambda 构建的微服务架构,还包括一个通过 SQS 松散耦合到业务 lambda 函数的生产者/侦听器。它通过以下方法运行良好:
- lambda 的保留并发数为 1
- 通过 CloudWatch Events 每 1 分钟触发一次:由于最大并发数为 1,如果一个实例正在运行,如果已配置函数,则不会进行并行调用
- 如果函数接近 15 分钟的超时时间,它将优雅地自行关闭
我还没有遇到任何麻烦,而且该解决方案确实具有成本效益,但正如您可能已经注意到的那样,至少存在一个主要缺点:消费者/生产者将处于“离线”状态每约 15 分钟(Lambda 的最大执行时间)到 1.x 分钟(下一次 CloudWatch 调用可能需要长达 59 秒 + 引导生产者/侦听器)。
我没有任何严格的实时要求,但我确信有更好的方法或改进,而无需切换到在 ECS 中运行容器,这是我真正想避免的。
我有什么选择?
【问题讨论】:
标签: amazon-web-services lambda serverless serverless-architecture