【发布时间】:2016-12-02 11:50:09
【问题描述】:
我们应该从我们的代码中调用 AWS lambda 函数吗? 这主要是一个 AWS 好/坏实践问题。这样做好还是我们应该创建一个 SNS 通知并基于 SNS 触发 lambda?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sns
我们应该从我们的代码中调用 AWS lambda 函数吗? 这主要是一个 AWS 好/坏实践问题。这样做好还是我们应该创建一个 SNS 通知并基于 SNS 触发 lambda?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sns
您可能需要考虑的一些事项:
我们使用了 SNS 方法,并且工作正常。只是一种意见,除非开销太大,否则它是比直接调用更好的选择。
【讨论】:
如果您添加另一个间接层,您仍然必须处理消息到达速度快于您处理它们的速度,或者遇到 Lambda 限制的问题。
来自 Lambda 文档:
异步调用 – 如果您的 Lambda 函数被异步调用并受到限制,AWS Lambda 会自动重试受限制的事件长达六小时,重试之间会有延迟。异步事件在用于调用 Lambda 函数之前先排队。
您可能有一个无法容忍 6 小时延迟的流程 - 即。您宁愿对发送速度过快而无法为进程提供背压的消息进行快速早期丢弃,而不是在答案相关后很久才收到正确的响应。
真正要回答的问题与您的代码有很大关系。如果您暂时遇到资源限制,您对最终正确答案感到满意,还是对失败的早期警告更满意?直接从您的代码触发事件使您自己承担队列管理的所有责任;向具有自己的重试和队列逻辑的系统发送消息将迫使您在可能处于最大压力点时了解该系统的怪癖和管理工具。
【讨论】: