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

教程:为终端节点订阅 Amazon SNS 主题

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

以下教程说明如何使用 AWS 管理控制台、AWS SDK for Java和适用于 .NET 的 AWS 开发工具包创建订阅,然后为终端节点订阅主题。

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

  1. 登录 Amazon SNS 控制台

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

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

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

    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终端节点主题状态(在此阶段为等待确认)和协议显示在详细信息部分中。

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

  6. 在 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.

使用适用于 .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("CTo confirm the subscription, check your email.");
  3. 编译并运行您的代码。

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

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