教程:将消息发送到 Amazon SQS 队列 - Amazon Simple Queue Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

教程:将消息发送到 Amazon SQS 队列

在创建队列之后,可向其发送消息。以下示例说明如何向现有队列发送消息。

AWS 管理控制台

  1. 登录 Amazon SQS 控制台

  2. 从队列列表中选择一个队列。

  3. Queue Actions (队列操作) 中,选择 Send a Message (发送消息)

    此时将显示 Send a Message to QueueName (发送消息至 QueueName) 对话框。

    以下示例显示了特定于 FIFO 队列(已禁用基于内容的重复数据删除)的消息组 ID消息重复数据删除 ID 参数。

  4. 要将消息发送到 FIFO 队列,请键入 Message Body (消息正文)Message Group ID (消息组 ID) MyMessageGroupId1234567890Message Deduplication ID (消息重复数据删除 ID) MyMessageDeduplicationId1234567890,然后选择 Send Message (发送消息)。有关更多信息,请参阅FIFO 传送逻辑

    注意

    始终需要 message group ID。但是,如果启用 content-based deduplication,则 message deduplication ID 是可选的。

    您的消息将会发送,并显示 Send a Message to QueueName (发送消息至 QueueName) 对话框,其中将显示已发送消息的属性。

    以下示例显示了特定于 FIFO 队列的 Sequence Number (序号) 属性。

  5. 选择 Close

AWS SDK for Java

以下示例使用的是 AWS Java 开发工具包。要安装和设置开发工具包,请参阅 AWS SDK for Java Developer Guide 中的设置适用于 Java 的 AWS 开发工具包

运行示例代码之前,请配置您的 AWS 凭证。有关更多信息,请参阅 AWS SDK for Java Developer Guide 中的设置用于开发的 AWS 凭证和区域

向 标准 队列发送消息

  1. 复制示例程序

    以下代码部分将向您的队列发送 This is my message text. 消息:

    // Send a message System.out.println("Sending a message to MyQueue.\n"); sqs.sendMessage(new SendMessageRequest(myQueueUrl, "This is my message text."));
  2. 编译并运行示例。

    消息已发送到队列。此响应包含下列项目:

    • Amazon SQS 分配给该消息的消息 ID

    • 消息正文的 MD5 摘要,用于确认 Amazon SQS 正确接收了消息(有关更多信息,请参阅 RFC1321)。

    • Amazon SQS 分配给您的请求的请求 ID

向 FIFO 队列发送消息

  1. 复制示例程序

    以下代码部分将向您的队列发送 This is my message text. 消息:

    // Send a message System.out.println("Sending a message to MyFifoQueue.fifo.\n"); final SendMessageRequest sendMessageRequest = new SendMessageRequest(myQueueUrl, "This is my message text."); // When you send messages to a FIFO queue, you must provide a non-empty MessageGroupId. sendMessageRequest.setMessageGroupId("messageGroup1"); // Uncomment the following to provide the MessageDeduplicationId //sendMessageRequest.setMessageDeduplicationId("1"); final SendMessageResult sendMessageResult = sqs.sendMessage(sendMessageRequest); final String sequenceNumber = sendMessageResult.getSequenceNumber(); final String messageId = sendMessageResult.getMessageId(); System.out.println("SendMessage succeed with messageId " + messageId + ", sequence number " + sequenceNumber + "\n");
  2. 编译并运行示例。

    消息将会发送到您的队列。