Amazon Simple Notification Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon SNS 入门

本节通过介绍如何使用 AWS 管理控制台管理主题、订阅和消息,来帮助您进一步熟悉 Amazon SNS。

先决条件

在开始之前,请完成设置 Amazon SNS 的访问权限中的步骤。

步骤 1:创建主题

  1. 登录 Amazon SNS 控制台

  2. 创建主题部分中,输入主题名称,例如 MyTopic

  3. 选择创建主题

    将创建主题并显示 MyTopic 页面。

    主题的名称ARN、(可选)显示名称主题所有者的 AWS 账户 ID 将显示在详细信息部分中。

  4. 将主题 ARN 复制到剪贴板,例如:

    arn:aws:sns:us-west-2:123456789012:MyTopic

步骤 2:为终端节点创建主题订阅

  1. 在导航面板中,选择订阅

  2. 订阅页上,选择创建订阅

  3. 创建订阅页中,执行以下操作:

    1. 输入您之前创建的主题的 Topic ARN (主题 ARN),例如:

      arn:aws:sns:us-west-2:123456789012:MyTopic

      注意

      要查看当前 AWS 账户中的主题列表,请选择 Topic ARN (主题 ARN) 字段。

    2. 对于协议,选择终端节点类型,例如电子邮件

    3. 终端节点中,输入可以接收通知的电子邮件地址,例如:

      name@example.com

      注意

      在订阅创建后,您必须确认它。只有 AWS 账户中的其他 HTTP/S 终端节点、电子邮件地址和 AWS 资源要求确认。(同一个 AWS 账户中的 Amazon SQS 队列和 Lambda 函数以及移动终端节点不需要确认。)

    4. 选择 Create subscription

      将创建订阅并显示 订阅:1234a567-bc89-012d-3e45-6fg7h890123i 页面。

      订阅的 ARN终端节点主题状态(在此阶段为等待确认)和协议显示在详细信息部分中。

  4. 在电子邮件客户端中,检查您指定的电子邮件地址,并从来自 Amazon SNS 的电子邮件中选择确认订阅

  5. 在 Web 浏览器中,将显示带有订阅 ID 的订阅确认。

步骤 3:向主题发布消息

  1. 在导航面板上,选择主题

  2. 主题页面上,选择您之前创建的主题,然后选择发布消息

  3. Publish message to topic (将消息发布到主题) 页面上,执行以下操作:

    1. (可选)在 Message details (消息详细信息) 部分中,输入 Subject (主题),例如:

      Hello from Amazon SNS!
    2. Message body (消息正文) 部分中,执行以下操作之一:

      • 选择 Identical payload for all delivery protocols (完全相同负载用于所有交付协议),然后输入消息,例如:

        If you receive this message, publishing a message to an Amazon SNS topic works.
      • 选择 Custom payload for each delivery protocol (对每个交付协议使用自定义负载),然后使用 JSON 对象定义要发送给每个协议的消息,例如:

        { "default": "Sample fallback message", "email": "Sample message for email endpoints", "sqs": "Sample message for Amazon SQS endpoints", "lambda": "Sample message for AWS Lambda endpoints", "http": "Sample message for HTTP endpoints", "https": "Sample message for HTTPS endpoints", "sms": "Sample message for SMS endpoints", "APNS": "{\"aps\":{\"alert\": \"Sample message for iOS endpoints\"} }", "APNS_SANDBOX": "{\"aps\":{\"alert\":\"Sample message for iOS development endpoints\"}}", "APNS_VOIP": "{\"aps\":{\"alert\":\"Sample message for Apple VoIP endpoints\"}}", "APNS_VOIP_SANDBOX": "{\"aps\":{\"alert\": \"Sample message for Apple VoIP development endpoints\"} }", "MACOS": "{\"aps\":{\"alert\":\"Sample message for MacOS endpoints\"}}", "MACOS_SANDBOX": "{\"aps\":{\"alert\": \"Sample message for MacOS development endpoints\"} }", "GCM": "{ \"data\": { \"message\": \"Sample message for Android endpoints\" } }", "ADM": "{ \"data\": { \"message\": \"Sample message for FireOS endpoints\" } }", "BAIDU": "{\"title\":\"Sample message title\",\"description\":\"Sample message for Baidu endpoints\"}", "MPNS": "<?xml version=\"1.0\" encoding=\"utf-8\"?><wp:Notification xmlns:wp=\"WPNotification\"><wp:Tile><wp:Count>ENTER COUNT</wp:Count><wp:Title>Sample message for Windows Phone 7+ endpoints</wp:Title></wp:Tile></wp:Notification>", "WNS": "<badge version=\"1\" value=\"42\"/>" }
    3. Message attributes (消息属性) 部分中,添加您希望 Amazon SNS 与订阅属性 FilterPolicy 相匹配的任何属性,以确定订阅的终端节点是否对发布的消息感兴趣。

      1. 选择属性 Type (类型),例如,String.Array

        注意

        如果属性类型是 String.Array,请将该数组放入方括号 ([]) 内。在该数组内,将字符串值加入双引号内。数字以及关键字 truefalsenull 无需加引号。

      2. 输入属性的 Name (名称),例如 customer_interests

      3. 输入属性的 Value (值),例如 ["soccer", "rugby", "hockey"]

      如果属性类型是 StringString.ArrayNumber,Amazon SNS 会首先依据订阅的筛选策略(如果存在)来评估该消息属性,然后再将消息发送至该订阅。

      有关更多信息,请参阅 Amazon SNS 消息属性

    4. 选择发布消息

      消息发布到主题,并显示 MyTopic 页面。

      主题的名称ARN、(可选)显示名称主题所有者的 AWS 账户 ID 将显示在详细信息部分中。

  4. 在电子邮件客户端中,检查您之前指定的电子邮件地址,并从 Amazon SNS 中阅读电子邮件。

步骤 4:删除订阅和主题

  1. 在导航面板中,选择订阅

  2. 订阅页面中,选择已确认的订阅,然后选择删除

    注意

    您无法删除等待的确认。3 天后,Amazon SNS 自动删除它。

  3. 删除订阅对话框中,选择删除

    将删除订阅。

  4. 在导航面板上,选择主题

  5. 主题页面上,选择主题,然后选择删除

    重要

    删除主题时,您还将删除对该主题的所有订阅。

  6. 删除主题 MyTopic 对话框中,输入 delete me,然后选择删除

    将删除此主题。

后续步骤

现在您已创建主题和订阅,并已了解如何向主题发送消息以及如何删除订阅和主题,您可能需要尝试以下操作: