Amazon SNS 消息发布 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon SNS 消息发布

在你之后创建 Amazon SNS 主题订阅终端节点,您可以publish消息传送到主题。发布消息时,Amazon SNS 会尝试将消息传递给订阅的终端节点

重要

您只能将消息发布到同一个Amazon区域。

要将消息发布到 Amazon SNS 主题,请使用Amazon Web Services Management Console

  1. 登录到Amazon SNS 控制台

  2. 在左侧导航窗格中,选择主题

  3. 在存储库的主题页面上,选择一个主题,然后选择发布消息

    控制台将打开将消息发布到主题页.

  4. 消息详细信息部分中,执行以下操作:

    1. (可选)输入消息Subject

    2. 对于FIFO 主题中,输入消息组 ID。同一消息组中的邮件按发布顺序传递。

    3. 对于 FIFO 主题,请输入消息重复数据删除 ID。此 ID 是可选的,如果您启用了基于内容的消息重复消除设置。

    4. (可选)对于移动推送通知中,输入生存时间 (TTL)值(以秒为单位)。这是推送通知服务(如 Apple 推送通知服务 (APN) 或 Firebase 云消息传送 (FCM))必须在多长的时间内将消息传送至终端节点。

  5. Message body (消息正文) 部分中,执行以下操作之一:

    1. 选择所有传递协议的有效载荷相同,然后输入消息。

    2. 选择对每个交付协议使用自定义负载中,然后输入 JSON 对象,以定义要发送给每个交付协议的消息。

      有关更多信息,请参阅 针对平台特定的有效负载发布

  6. 消息属性部分中,添加您希望 Amazon SNS 与订阅属性相匹配的任何属性FilterPolicy以确定订阅的终端节点是否对发布的消息感兴趣。

    1. 适用于类型中,选择属性类型,如字符串。数组

      注意

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

    2. 输入属性名称之外的压缩算法(例如customer_interests

    3. 输入属性之外的压缩算法(例如["soccer", "rugby", "hockey"]

    如果属性类型是字符串字符串。数组,或者数字,Amazon SNS 将根据订阅的筛选策略(如果存在),然后再将消息发送到订阅。

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

  7. 选择发布消息

    消息发布到主题,控制台将打开主题的详细信息页.

使用将消息发布到 Amazon SNS 主题Amazon SDK for Java

  1. 指定您的Amazon凭证。有关更多信息,请参阅 。设置Amazon凭证和发展区域中的Amazon SDK for Java 2.x开发人员指南

  2. 写你的代码。有关更多信息,请参阅 。使用 SDK for Java 2.x

    以下代码摘录将消息发布到主题,然后打印 MessageId

    // Publish a message to an Amazon SNS topic. final String msg = "If you receive this message, publishing a message to an Amazon SNS topic works."; final PublishRequest publishRequest = new PublishRequest(topicArn, msg); final PublishResult publishResponse = snsClient.publish(publishRequest); // Print the MessageId of the message. System.out.println("MessageId: " + publishResponse.getMessageId());
  3. 编译并运行您的代码。

    消息已发布并且已打印 MessageId,例如:

    MessageId: 1234a567-bc89-012d-3e45-6fg7h890123i

有关如何使用Amazon SDK for Java中,请参阅使用 Amazon SDK for Java 2.x

使用将消息发布到 Amazon SNS 主题Amazon SDK for .NET

  1. 指定您的Amazon凭证。有关更多信息,请参阅 。配置Amazon凭证中的Amazon SDK for .NET开发人员指南

  2. 写你的代码。有关更多信息,请参阅 。使用进行编程Amazon SDK for .NET

    以下代码摘录将消息发布到主题,然后打印 MessageId

    // Publish a message to an Amazon SNS topic. String msg = "If you receive this message, publishing a message to an Amazon SNS topic works."; PublishRequest publishRequest = new PublishRequest(topicArn, msg); PublishResponse publishResponse = snsClient.Publish(publishRequest); // Print the MessageId of the published message. Console.WriteLine("MessageId: " + publishResponse.MessageId);
  3. 编译并运行您的代码。

    消息已发布并且已打印 MessageId,例如:

    MessageId: 1234a567-bc89-012d-3e45-6fg7h890123i