

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

# Amazon SQS 中的 FIFO 队列和消息标识符
<a name="sqs-fifo-queue-message-identifiers"></a>

本节介绍 FIFO 队列的标识符。这些标识符可帮助您查找并操作特定队列和消息。

## Amazon SQS 中的 FIFO 队列标识符
<a name="sqs-general-identifiers"></a>

有关以下标识符的更多信息，请参阅 *[Amazon Simple Queue Service API 参考](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/APIReference/)*。

### 队列名称和 URL
<a name="fifo-queue-name-url"></a>

在创建新的队列时，您必须为 Amazon 账户和区域指定唯一的队列名称。Amazon SQS 会为您创建的每个队列分配一个名为*队列 URL* 的标识符，其中包含队列名称和其他 Amazon SQS 组件。每当您要对队列执行操作时，都需要提供其队列 URL。

FIFO 队列名称必须以 `.fifo` 后缀结尾。后缀计入 80 个字符的队列名称配额。要确定队列是否为 [FIFO](sqs-fifo-queues.md)，您可以检查队列名称是否以该后缀结尾。

以下是名为 `MyQueue` 的 FIFO 队列的队列 URL，该队列由 AWS 账号为 `123456789012` 的用户所拥有。

```
https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue.fifo
```

您可以通过列出队列并解析账号后的字符串，以编程方式检索队列的 URL。有关更多信息，请参阅 `[ListQueues](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)`。

### 消息 ID
<a name="fifo-message-id"></a>

每条消息都会收到一个系统分配的*消息 ID*，该 ID 由 Amazon SQS 在 `[SendMessage](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` 响应中返回给您。此标识符用于识别消息。消息 ID 的最大长度为 100 个字符。

### 接收句柄
<a name="fifo-receipt-handle"></a>

每当收到来自队列的消息时，您都会收到该消息的*接收句柄*。此句柄与接收消息的操作相关联，与消息本身无关。要删除消息或更改消息可见性，您必须提供接收句柄（而不是消息 ID）。因此，您必须始终先接收消息，然后才能删除它（您不能将消息放入队列中，然后重新调用它）。接收句柄的最大长度为 1024 个字符。

**重要**  
如果多次接收某条消息，则每次接收该消息时，您都会获得不同的接收句柄。在请求删除该消息时，您必须提供最近收到的接收句柄（否则，可能无法删除该消息）。

以下是一个跨三行显示的接收句柄示例。

```
MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+Cw
Lj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QE
auMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0=
```

## Amazon SQS FIFO 队列的其他标识符
<a name="sqs-additional-fifo-queue-identifiers"></a>

有关以下标识符的更多信息，请参阅[Amazon SQS 中的仅处理一次](FIFO-queues-exactly-once-processing.md)和 *[Amazon Simple Queue Service API 参考](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/APIReference/)*。

### 消息重复数据删除 ID
<a name="sqs-fifo-queue-messagededuplicationid"></a>

Amazon SQS FIFO 队列中使用的令牌，用于唯一地标识消息并防止重复。如果在 5 分钟的重复数据删除间隔内发送了多条具有相同重复数据删除 ID 的消息，则这些消息将被视为重复消息，并且系统只传递其中一条。如果您未指定重复数据删除 ID 并且启用了基于内容的重复数据删除，Amazon SQS 会通过对消息正文进行哈希处理来生成重复数据删除 ID。这一机制可以在指定时间范围内消除重复消息，从而确保仅传递一次。

### 消息组 ID
<a name="sqs-fifo-queue-messagegroupid"></a>

`MessageGroupId` 属性仅用于 Amazon SQS FIFO（先进先出）队列，可将消息组织成不同的组。同一消息组内的消息始终按照严格的顺序逐条处理，从而确保同一组内绝不会有两条消息同时被处理。标准队列不使用 `MessageGroupId`，也不提供顺序保证。如果需要严格排序，请使用 FIFO 队列。

### 序列号
<a name="sqs-fifo-queue-sequence-number"></a>

Amazon SQS 为每条消息分配的大型非连续数字。