【问题标题】:Difference between a device subscribing to an SNS topic, and a lambda function subscribing to a topic?订阅 SNS 主题的设备和订阅主题的 lambda 函数之间的区别?
【发布时间】:2020-09-18 12:20:09
【问题描述】:

我目前正在尝试设计一个可扩展的推送通知服务,它可以在很短的时间内向 5-10 百万用户发送通知。我遇到了两个与 AWS 相关的架构,这让我很困惑。 用例:向所有用户发送通知。

1) 每个设备订阅一个 SNS 主题,如果我们想向所有用户发送推送,我们只需发布到主题端点。其余的由 SNS 处理(发送给百万用户)

2) Lambda 函数订阅了 SNS 主题。我们向包含所有设备令牌/批次的 SNS 主题发送一条消息,然后 lambda 调用 APN/Firebase 端点。

我看不出在什么情况下第二种架构比第一种更有利?

【问题讨论】:

  • 能否进一步解释第二个选项?你是说只有一个 AWS Lambda 函数会订阅该主题,并传递 5-1000 万个要联系的身份列表?
  • @JohnRotenstein 感谢您的回复。关于第二个选项,它可能是。一种选择是进行批处理并将它们发送到 lambda 函数,然后直接发送到 apn/firebase。 (blog.toppr.com/…)
  • 另一个是包装最大 SNS 有效负载的通知,发送到 SNS,一个下标 lambda 函数读取它,然后再次生成多个 lambda 函数并发送通知。 (幻灯片 9:slideshare.net/AWSAktuell/…)但无论哪种情况,我都不明白为什么我们不能让所有百万设备直接订阅 sns 主题,而不是涉及 lambda 函数
  • 我同意。如果它适用于您的 SNS,则无需使用 AWS Lambda 函数。顺便说一句,您可能也有兴趣了解AWS Pinpoint
  • 我去看看,谢谢!另外,如果我们要向 5-1000 万用户批量发送一条通知,根据您的经验,您认为如果我们使用多个 lambda 函数与仅使用 sns 相比,是否会对整体交付时间产生任何影响?

标签: amazon-web-services push-notification aws-lambda apple-push-notifications amazon-sns


【解决方案1】:

移动推送通知: sns 端点将基于用户设备令牌创建,您将从 Adm、Fcm 等(如推送通知平台 sdk)获取设备令牌,您可以触发推送通知到基于特定用户的 sns 端点,因为每个设备都有不同的端点并且它创建了用户设备令牌并且您将跟踪用户设备令牌和端点以及 userId,并且您可以看到 aws sns 移动推送通知控制台

  1) you can create manually also
  2) you can create endpoint using programmatically

您可以参考下面的sdks通过代码https://docs.aws.amazon.com/sns/latest/dg/mobile-push-api.html创建

Lamda 推送通知

您可以在 sns 控制台中创建 sns 主题,并且可以订阅要发送通知的 lambda 基本上,如果您想将一个 lamda 连接到另一个 lamda,您可以使用这些案例

示例 1: 您有用于向用户发送 otp 的微服务和部署在不同 lambda 中的微服务,并且应用程序接收发送 otp 请求您的应用程序主 lamda 现在您需要调用 otpservice lamda 以便您可以创建一个 sns 主题并在订阅下您可以订阅 otp 微服务 lamda所以主 lamda 将触发 otp 服务 sns 端点它将传递通知微服务 lamda

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 2019-09-02
    • 1970-01-01
    • 2015-05-29
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多