订阅 Amazon SNS 主题 - Amazon Simple Notification Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

订阅 Amazon SNS 主题

要接收发布到主题的消息,您必须为终端节点(例如 AWS Lambda、Amazon SQS、HTTP/S 或电子邮件地址)订阅主题。在为终端节点订阅主题并确认订阅后,此终端节点会开始接收发布到关联主题的消息。

使用 Amazon SNS 为终端节点订阅 AWS 管理控制台 主题

  1. 登录到 Amazon SNS 控制台

  2. 在左侧导航窗格中,选择订阅

  3. 订阅页面上,选择创建订阅

  4. 创建订阅页上,在详细信息部分中,执行以下操作:

    1. 对于 Topic ARN (主题 ARN),选择主题的 Amazon 资源名称 (ARN)。

    2. 对于 Protocol,选择终端节点类型,例如 Email。要订阅 FIFO 主题,请为协议选择 Amazon SQS

    3. 对于 Endpoint (终端节点),输入终端节点值,例如 Amazon SQS 队列的电子邮件地址或 ARN。请注意,其他 AWS 账户中的 HTTP(S) 终端节点、电子邮件地址和 AWS 资源需要确认。

    4. (可选)要配置筛选策略,请展开 Subscription filter policy (订阅筛选策略) 部分。有关更多信息,请参阅筛选策略约束

    5. (可选)要为主题配置死信队列,请展开 Redrive policy (dead-letter queue) (重新驱动策略(死信队列)) 部分。有关更多信息,请参阅Amazon SNS 死信队列 (DLQ)

    6. 选择 Create subscription

      控制台将创建订阅并打开订阅的 Details (详细信息) 页面。

对于某些终端节点类型(如 HTTP(S) 终端节点、电子邮件地址和其他 AWS 账户中的 AWS 资源),您必须先确认订阅,然后终端节点才能开始接收消息。

确认订阅

  1. 如果您的终端节点是电子邮件地址,请检查电子邮件收件箱并选择来自 的电子邮件中的 Confirm subscription (确认订阅)Amazon SNS。

  2. Amazon SNS 将打开 Web 浏览器并显示包含您的订阅 ID 的订阅确认。

使用 AWS SDK for Java为终端节点订阅 Amazon SNS 主题

  1. 指定您的 AWS 凭证。有关更多信息,请参阅 适用于 Java 的 AWS 开发工具包 2.x 开发人员指南 中的设置用于开发的 AWS 凭证和区域

  2. 编写您的代码。有关更多信息,请参阅使用 适用于 Java 的开发工具包 2.x

    以下代码摘录为电子邮件终端节点创建订阅,然后打印 SubscribeRequest 请求 ID。

    // Subscribe an email endpoint to an Amazon SNS topic. final SubscribeRequest subscribeRequest = new SubscribeRequest(topicArn, "email", "name@example.com"); snsClient.subscribe(subscribeRequest); // Print the request ID for the SubscribeRequest action. System.out.println("SubscribeRequest: " + snsClient.getCachedResponseMetadata(subscribeRequest)); System.out.println("To confirm the subscription, check your email.");
  3. 编译并运行您的代码。

    创建订阅并打印 SubscribeRequest 请求 ID,例如:

    SubscribeRequest: {AWS_REQUEST_ID=1234a567-bc89-012d-3e45-6fg7h890123i} To confirm the subscription, check your email.

有关如何使用 AWS SDK for Java 创建和发布 FIFO 主题的详细示例,请参阅使用 适用于 Java 的 AWS 开发工具包 2.x

使用 适用于 .NET 的 AWS 开发工具包为终端节点订阅 Amazon SNS 主题

  1. 指定您的 AWS 凭证。有关更多信息,请参阅 适用于 .NET 的 AWS 开发工具包 开发人员指南 中的配置 AWS 凭证

  2. 编写您的代码。有关更多信息,请参阅使用 适用于 .NET 的 AWS 开发工具包 进行编程

    以下代码摘录为电子邮件终端节点创建订阅,然后打印 SubscribeRequest 请求 ID。

    // Subscribe an email endpoint to an Amazon SNS topic. SubscribeRequest subscribeRequest = new SubscribeRequest(topicArn, "email", "name@example.com"); SubscribeResponse subscribeResponse = snsClient.Subscribe(subscribeRequest); // Print the request ID for the SubscribeRequest action. Console.WriteLine("SubscribeRequest: " + subscribeResponse.ResponseMetadata.RequestId); Console.WriteLine("To confirm the subscription, check your email.");
  3. 编译并运行您的代码。

    创建订阅并打印 SubscribeRequest 请求 ID,例如:

    SubscribeRequest: 1234a567-bc89-012d-3e45-6fg7h890123i To confirm the subscription, check your email.