【问题标题】:Amazon SNS for webhook to client (HTTP)用于 Webhook 到客户端 (HTTP) 的 Amazon SNS
【发布时间】:2020-08-12 23:04:26
【问题描述】:

我正在通过 AWS 构建服务,但我不知道如何通过 http(s) 将 webhook 发送给我的客户。

似乎一种解决方案是为他们每个人创建一个 SNS 主题,然后将他们的 URL 订阅到该主题,但我一直认为这是一个矫枉过正的解决方案。我的意思是,每个客户都有一个主题和一个 URL ..

是否有 SNS 解决方案允许我使用 HTTP 将消息直接发送到 URL?不必为每个客户创建一个主题然后将他们的 url 订阅到该主题?

非常感谢

【问题讨论】:

    标签: amazon-web-services webhooks amazon-sns


    【解决方案1】:

    您绝对不需要每个订阅者一个主题。您可以使用一个主题并将所有客户端 HTTP 端点订阅到该主题。不仅如此,您可以在同一个主题中使用多种传输协议,HTTP/HTTPS、电子邮件……这意味着您可以将相同的消息发送到多个端点,每个端点同时使用相同或不同的协议。

    在 AWS 控制台中,转到 SNS -> Topics -> Create Topic 并创建主题。然后转到SNS -> Subscriptions 并创建订阅(您需要指定主题的 arn、要使用的协议和端点地址)。您需要为每个端点创建一个订阅。完成后,转到SNS -> Topics -> 选择您之前创建的主题。您将在默认打开的Subscriptions 选项卡下看到所有订阅。

    或者您可以使用aws sns cli 创建这些订阅。

    aws sns subscribe
    --topic-arn <value>
    --protocol <value>
    [--notification-endpoint <value>]
    

    并按主题列出订阅:

    aws sns list-subscriptions-by-topic
    --topic-arn <value>
    

    【讨论】:

    • 哦,对不起,我可能说错了。我的意思是向每个订阅者发送不同的消息。我希望有一种方法可以在不创建主题的情况下发送到 HTTP 端点,但我觉得我别无选择
    • 您仍然可以创建单个主题并使用subscription filter policy 过滤出谁将收到哪条消息(基于键,您甚至可以在消息和收件人之间创建一对一的映射同时仍然拥有一个包含所有订阅的主题)
    • 谢谢,我去看看!
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多