【问题标题】:aws sns invoking lambda multiple timesaws sns 多次调用 lambda
【发布时间】:2022-01-27 01:06:29
【问题描述】:

我的 AWS 应用程序不允许重复。在我的应用程序(扇出)中,SNS 触发了多个 lambda 服务。由于 SNS 遵循至少一次执行,因此有可能多次触发相同的服务。

  1. 如果我使用 SNS FIFO 修复重复问题?或任何最佳选择?
  2. 使用 SNS FIFO,我们只能订阅 SQS,是否有任何替代方法可以直接触发 lambda?

我的意图是 SNS==> 不同的 lambdas(基于输入的 msg 类型,没有重复)

提前致谢, 阿尼尔

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-sns


    【解决方案1】:
    1. 是的,如果您提供重复数据删除 ID 或启用主题上基于内容的消息重复数据删除。此外,您还必须有一个 SQS FIFO 队列。

    AWS docs 对重复数据删除有这样的看法:

    Amazon SNS FIFO 主题和 Amazon SQS FIFO 队列支持消息重复数据删除,只要满足以下条件,就可以提供完全一次的消息传递和处理:

    • 已订阅的 SQS FIFO 队列存在并具有允许 Amazon SNS 服务主体将消息传递到队列的权限。
    • SQS FIFO 队列使用者处理消息,并在可见性超时到期之前将其从队列中删除。
    • Amazon SNS 订阅主题没有消息过滤。当您配置消息过滤时,SNS FIFO 主题支持最多一次传递,因为可以根据您的订阅过滤策略过滤掉消息。
    • 不存在阻止确认消息传递的网络中断。
    1. 对于这个,答案应该是显而易见的。不,此时此刻,您只能将 SQS FIFO 作为主题的订阅者。 AWS documentation 对此非常具体:

    要将来自 Amazon SNS FIFO 主题的消息扇出到 AWS Lambda 函数,需要额外的步骤。首先,为主题订阅 Amazon SQS FIFO 队列。然后配置队列触发功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 2016-05-02
      • 2016-12-25
      • 2020-02-24
      • 1970-01-01
      • 2017-12-01
      • 2015-11-16
      相关资源
      最近更新 更多