

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

# Amazon SQS 入门
<a name="sqs-getting-started"></a>

本主题将指导您使用 Amazon SQS 控制台创建和管理**标准队列**与 **FIFO 队列**。您将了解如何浏览控制台、查看队列属性以及区分队列类型。关键任务包括发送、接收和配置消息，调整可见性超时和消息保留等参数，以及通过策略管理队列访问权限。

**Topics**
+ [设置](sqs-setting-up.md)
+ [了解 Amazon SQS 控制台](sqs-configure-overview.md)
+ [队列类型](sqs-queue-types.md)
+ [创建标准队列](creating-sqs-standard-queues.md)
+ [创建 FIFO 队列](creating-sqs-fifo-queues.md)
+ [常见任务](get-started.md)

# 设置 Amazon SQS
<a name="sqs-setting-up"></a>

在首次使用 Amazon SQS 之前，您必须完成以下步骤：

## 步骤 1：创建 AWS 账户 和 IAM 用户
<a name="sqs-creating-aws-account"></a>

要访问任何 AWS 服务，您首先需要创建一个[AWS 账户](https://aws.amazon.com/)可以使用 AWS 商品的 Amazon.com 账户。您可以使用 AWS 账户 来查看您的活动和使用情况报告，以及管理身份验证和访问权限。

为避免使用您的 AWS 账户 根用户执行 Amazon SQS 操作，最佳做法是为每位需要访问 Amazon SQS 的管理权限的人创建一个 IAM 用户。

### 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**要注册 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

### 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

## 第 2 步：授权以编程方式访问
<a name="sqs-getting-access-key-id-secret-access-key"></a>

要使用 Amazon SQS 操作（例如，使用 Java 或通过 AWS Command Line Interface），您需要一个访问密钥 ID 和一个私有访问密钥。

**注意**  
访问密钥 ID 和私有访问密钥是特定的 AWS Identity and Access Management。不要将它们与其他 AWS 服务（例如 Amazon EC2 密钥对）的证书混淆。

如果用户想在 AWS 外部进行交互，则需要编程访问权限 AWS 管理控制台。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | （推荐）使用控制台凭证作为临时凭证，签署对 AWS CLI AWS SDKs、或的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 
| IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将[临时证书与 AWS 资源配合使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 

## 第 3 步：为使用示例代码做好准备
<a name="sqs-get-ready-to-use-example-code"></a>

本指南包括使用适用于 Java 的 AWS SDK 的示例。要运行示例代码，请按照[适用于 Java 的 AWS SDK 2.0 使用入门](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/)中的设置说明进行操作。

您可以使用其他编程语言开发 AWS 应用程序，例如 Go、JavaScript、Python 和 Ruby。有关更多信息，请参阅[构建工具 AWS](https://aws.amazon.com/developer/tools/#sdk)。

**注意**  
使用 AWS Command Line Interface (AWS CLI) 或 Windows 之类的工具，你无需编写代码即可浏览 Amazon SQS。 PowerShell您可以在《*AWS CLI 命令*参考》的 [Amazon SQS 部分](https://docs.aws.amazon.com/cli/latest/reference/sqs/index.html)中找到 AWS CLI 示例。你可以在 *[AWS Tools for PowerShell Cmdlet](https://docs.aws.amazon.com/powershell/latest/reference/)* 参考的 “亚马逊简单队列服务” 部分找到 Windows PowerShell 示例。

## 后续步骤
<a name="sqs-next-steps-setting-up"></a>

现在，您可以[开始](sqs-getting-started.md)使用 AWS 管理控制台管理 Amazon SQS 队列和消息了。

# 了解 Amazon SQS 控制台
<a name="sqs-configure-overview"></a>

打开 Amazon SQS 控制台后，从导航窗格中选择**队列**。**队列**页面提供有关活动区域中所有队列的信息。

每个队列条目都提供有关队列的基本信息，包括队列类型和关键属性。[标准队列](standard-queues.md)经过优化，旨在实现最大吞吐量和最优消息排序，而[先进先出（FIFO）](sqs-fifo-queues.md)队列则优先考虑消息排序和唯一性，适用于需要严格消息顺序的应用程序。

![\[Amazon SQS 控制台中的“队列”页面。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-config-queue-list.png)


**交互式元素和操作**

在“队列”页面，您可以使用多个选项来管理队列：

1. **快速操作**：您可以使用每个队列名称旁边的下拉菜单快速访问常见操作，例如发送、查看或删除消息、配置触发器以及删除队列本身。

1. **详细视图和配置**：单击队列名称可以打开“队列详细信息”页面，您可以在其中更深入地了解队列设置和配置。在该页面，您可以调整消息保留期、可见性超时和最大消息大小等参数，以便根据应用程序的要求定制队列。

![\[Amazon SQS 控制台中的“队列详细信息”页面。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/queue-details-page.png)


**区域选择和资源标签**

确保您处于正确的 AWS 区域，以便有效地访问和管理队列。此外，您可以考虑使用资源标签来整理和分类队列，从而在 AWS 共享环境中实现更好的资源管理、成本分配和访问控制。

借助 Amazon SQS 控制台中提供的特征和功能，您可以高效地管理消息基础设施，优化队列性能，并确保为应用程序提供可靠的消息传递。

# Amazon SQS 队列类型
<a name="sqs-queue-types"></a>

Amazon SQS 支持两种类型的队列：[**标准队列**](standard-queues.md)和 [**FIFO**](sqs-fifo-queues.md) 队列。使用下表来确定哪种队列最适合您的需求。


| 标准队列 | FIFO 队列 | 
| --- | --- | 
|  **无限制吞吐量** – 标准队列支持每个操作（[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 或 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)）每秒几乎无限次的 API 调用。这种高吞吐量使其非常适合需要快速处理大量消息的应用场景，例如实时数据流或大型应用程序。虽然标准队列会根据需求自动扩展，但您必须监控使用模式以确保实现最佳性能，特别是在工作负载较高的区域。 At-least-once 传@@ **送** — 有保证的传 at-least-once送，这意味着每条消息至少传送一次，但在某些情况下，由于重试或网络延迟，一条消息可能会多次传送。在设计应用程序时，您应该使用幂等性操作来处理可能出现的重复消息，从而确保多次处理同一条消息不会影响系统的状态。 **最大努力排序**：提供“最大努力排序”功能，这意味着虽然 Amazon SQS 尝试按照消息发送顺序传送消息，但不能保证这一点。在某些情况下，消息可能会无序到达，尤其是在高吞吐量或故障恢复的情况下。对于消息处理顺序至关重要的应用程序，您应该处理应用程序中的重新排序逻辑，或者使用 FIFO 队列来保证严格的排序。 **耐久性和冗余** — 标准队列通过在多个 AWS 可用区存储每条消息的多个副本来确保高耐久性。这样可以确保即使基础设施出现故障，消息也不会丢失。 **可见性超时**：Amazon SQS 让您能够配置可见性超时以控制消息在被接收后隐藏多长时间，从而确保在消息得到完全处理或超时到期之前，其他用户无法处理该消息。  | **高吞吐量** – 如果您使用[批处理](sqs-batch-api-actions.md)，则 FIFO 队列支持每个 API 方法（[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 或 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html)）每秒最多处理 3000 条消息。这种吞吐量依赖于每秒 300 次 API 调用，每次 API 调用都批量处理 10 条消息。通过启用高吞吐量模式，您可以将每秒事务数（TPS）扩展到 3 万个，但这会放宽消息组内的顺序要求。在不使用批处理的情况下，FIFO 队列支持每个 API 方法（`SendMessage`、`ReceiveMessage` 或 `DeleteMessage`）每秒最多 300 次 API 调用。如果您需要更高的吞吐量，可以通过 [AWS Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sqs) 请求增加配额。要启用高吞吐量模式，请参阅[为 Amazon SQS 中的 FIFO 队列启用高吞吐量](enable-high-throughput-fifo.md)。 **仅处理一次**：FIFO 队列仅将每条消息传递一次，并在您处理和删除消息之前保持消息处于可用状态。通过使用 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) 或基于内容的重复数据删除等功能，即使由于网络问题或超时而重试，也可以防止消息重复。 **First-in-first-out 传送** — FIFO 队列可确保您按照每个消息组中的发送顺序接收消息。通过将消息分配到多个组中，您可以并行处理这些消息，同时保持每个组内的顺序。  | 
|  ![\[标准队列消息传递。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-standard-queue-diagram.png)  |  ![\[FIFO 队列消息传递。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-fifo-queue-diagram.png)  | 
| 当吞吐量至关重要时，请使用标准队列在应用程序之间发送数据，例如：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html) |  如果事件顺序非常重要，可以使用 FIFO 队列在应用程序之间发送数据，例如： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html)  | 

# 在 Amazon SQS 中实现请求-响应系统
<a name="implementing-request-response-systems"></a>

实施请求-响应和远程程序调用 (RPC) 系统时，请记住以下最佳实践：
+ **在启动时创建回复队列**：在启动时为每个创建者创建回复队列，而不是为每条消息创建回复队列。使用关联 ID 消息属性高效地将回复与请求进行对应。
+ **避免在创建者之间共享回复队列**：确保每个创建者都有自己的回复队列。共享回复队列可能会导致创建者收到原本应发送给另一个创建者的响应消息。

有关使用临时队列客户端实施请求-响应模式的更多信息，请参阅 [请求-响应消息收发模式（虚拟队列）](sqs-temporary-queues.md#request-reply-messaging-pattern)。

# 创建 Amazon SQS 标准队列并发送消息
<a name="creating-sqs-standard-queues"></a>

您可以使用 Amazon SQS 控制台创建[标准队列](standard-queues.md)并发送消息。本主题还重点介绍了最佳实践，包括避免在队列名称中使用敏感信息以及使用托管服务器端加密。

## 使用 Amazon SQS 控制台创建标准队列
<a name="step-create-standard-queue"></a>

**重要**  
2022 年 8 月 17 日，默认服务器端加密 (SSE) 应用于所有 Amazon SQS 队列。  
请勿在队列名称中添加个人身份信息 (PII) 或其他机密/敏感信息。许多 Amazon Web Services 都可以访问队列名称，包括账单和 CloudWatch 日志。队列名称不适合用于私有或敏感数据。

**创建 Amazon SQS 标准队列**

1. 打开 Amazon SQS 控制台，网址为。[https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)

1. 选择**创建队列**。

1. 对于**类型**，默认设置为**标准**队列类型。
**注意**  
创建队列后无法更改队列类型。

1.  输入队列的**名称**。

1. （可选）控制台为队列[配置参数](sqs-configure-queue-parameters.md)设置默认值。在**配置**下，您可以为以下参数设置新值：

   1. 对于**可见性超时**，输入持续时间和单位。范围从 0 秒到 12 小时。默认 值为 30 秒。

   1. 对于**消息保留期**，输入持续时间和单位。范围从 1 分钟到 14 天。默认值为 4 天。

   1. 对于**传送延迟**，输入持续时间和单位。范围从 0 秒到 15 分钟。默认值为 0 秒。

   1. 对于**最大消息大小**，输入一个值。范围从 1 KiB 到 1024 KiB 不等。默认值为 1024 KiB。

   1. 在**接收消息等待时间**中，输入一个值。范围从 0 秒到 20 秒。默认值为 0 秒，这会设置[短轮询](sqs-short-and-long-polling.md)。任何非零值都会设置长轮询。

1. （可选）定义**访问策略**。[访问策略](sqs-creating-custom-policies-access-policy-examples.md)定义了可以访问队列的账户、用户和角色。访问策略还定义了用户可以访问的操作（例如 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 或 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)）。默认策略仅允许队列所有者发送和接收消息。

   要定义访问策略，请执行以下操作之一：
   + 选择**基本**，配置谁可以向队列发送消息以及谁可以从队列接收消息。控制台根据您的选择创建策略，并在只读 JSON 面板中显示生成的访问策略。
   + 选择**高级**，直接修改 JSON 访问策略。这允许您指定每个主体（账户、用户或角色）可以执行的一组自定义操作。

1. 对于**重新驱动允许策略**，请选择**启用**。从以下选项中选择一个：**全部允许**、**按队列**或**全部拒绝**。选择**按队列**时，按 Amazon 资源名称 (ARN) 指定最多 10 个源队列的列表。

1. 默认情况下，Amazon SQS 提供托管服务器端加密。要选择加密密钥类型或禁用 Amazon SQS 托管服务器端加密，请展开**加密**。有关加密密钥类型的更多信息，请参阅[使用 SQS 托管的加密密钥为队列配置服务器端加密](sqs-configure-sqs-sse-queue.md)和[使用 Amazon SQS 控制台为队列配置服务器端加密](sqs-configure-sse-existing-queue.md)。
**注意**  
启用 SSE 后，对加密队列的匿名 `SendMessage` 和 `ReceiveMessage` 请求将被拒绝。Amazon SQS 安全最佳实践建议不要使用匿名请求。如果您想向 Amazon SQS 队列发送匿名请求，请确保禁用 SSE。

1. （可选）要将[死信队列](sqs-configure-dead-letter-queue.md)配置为接收无法投递的消息，请展开**死信队列**。

1. （可选）要向队列添加[标签](sqs-configure-tag-queue.md)，请展开**标签**。

1. 选择**创建队列**。Amazon SQS 创建队列并显示队列的**详细信息**页面。

Amazon SQS 会在整个系统中传播有关新队列的信息。由于 Amazon SQS 是一种分布式系统，因此在控制台在**队列**页面上显示队列之前，您可能会遇到轻微的延迟。

## 使用标准队列发送消息
<a name="sqs-send-messages"></a>

创建队列后，您可以向该队列发送消息。

1. 在左侧导航窗格中，选择**队列**。在队列列表中，选择刚刚创建的队列。

1. 从**操作**中，选择**发送和接收消息**。

   控制台会显示**发送和接收消息**页面。

1. 对于**消息正文**，输入消息文本。

1. 对于标准队列，您可以为**传送延迟**输入值并选择单位。例如，输入 `60` 并选择**秒**。有关更多信息，请参阅 [Amazon SQS 消息计时器](sqs-message-timers.md)。

1. 选择**发送消息**。

   发送消息后，控制台会显示一条成功消息。选择**查看详细信息**，显示有关已发送消息的信息。

# 创建 Amazon SQS FIFO 队列并发送消息
<a name="creating-sqs-fifo-queues"></a>

您可以创建 Amazon SQS FIFO 队列并通过控制台发送消息。本主题介绍了如何设置队列参数，包括可见性超时、消息保留和重复数据删除，同时遵循安全最佳实践，例如避免在队列名称中使用敏感信息以及启用服务器端加密。它还包括定义访问策略、配置死信队列以及发送带有特定于 FIFO 的属性（例如消息组 ID 和重复数据删除 ID）的消息。

## 使用 Amazon SQS 控制台创建 FIFO 队列
<a name="step-create-fifo-queue"></a>

您可以使用 Amazon SQS 控制台创建 [FIFO 队列](sqs-fifo-queues.md)。该控制台为除队列名称之外的所有设置提供默认值。

**重要**  
2022 年 8 月 17 日，默认服务器端加密 (SSE) 应用于所有 Amazon SQS 队列。  
请勿在队列名称中添加个人身份信息 (PII) 或其他机密/敏感信息。许多 Amazon Web Services 都可以访问队列名称，包括账单和 CloudWatch 日志。队列名称不适合用于私有或敏感数据。

**创建 Amazon SQS FIFQ 队列**

1. 打开 Amazon SQS 控制台，网址为。[https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)

1. 选择**创建队列**。

1. 对于**类型**，默认设置为**标准**队列类型。要创建 FIFO 队列，请选择 **FIFO**。
**注意**  
创建队列后无法更改队列类型。

1.  输入队列的**名称**。

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

1. （可选）控制台为队列[配置参数](sqs-configure-queue-parameters.md)设置默认值。在**配置**下，您可以为以下参数设置新值：

   1. 对于**可见性超时**，输入持续时间和单位。范围从 0 秒到 12 小时。默认 值为 30 秒。

   1. 对于**消息保留期**，输入持续时间和单位。范围从 1 分钟到 14 天。默认值为 4 天。

   1. 对于**传送延迟**，输入持续时间和单位。范围从 0 秒到 15 分钟。默认值为 0 秒。

   1. 对于**最大消息大小**，输入一个值。范围从 1 KiB 到 1024 KiB 不等。默认值为 1024 KiB。

   1. 在**接收消息等待时间**中，输入一个值。范围从 0 秒到 20 秒。默认值为 0 秒，这会设置[短轮询](sqs-short-and-long-polling.md)。任何非零值都会设置长轮询。

   1. 对于 FIFO 队列，选择**基于内容的重复数据删除**，以启用基于内容的重复数据删除。默认情况下，该设置处于禁用状态。

   1. （可选）要让 FIFO 队列启用更高的吞吐量以便在队列中发送和接收消息，请选择**启用高吞吐量 FIFO**。

      选择此选项会将相关选项（**重复数据删除范围**和 **FIFO 吞吐量限制**）更改为为 FIFO 队列启用高吞吐量所需的设置。如果更改使用高吞吐量 FIFO 所需的任何设置，则队列正常吞吐量生效，重复数据删除按规定进行。有关更多信息，请参阅[Amazon SQS 中 FIFO 队列的高吞吐量](high-throughput-fifo.md)和[Amazon SQS 消息配额](quotas-messages.md)。

1. （可选）定义**访问策略**。[访问策略](sqs-creating-custom-policies-access-policy-examples.md)定义了可以访问队列的账户、用户和角色。访问策略还定义了用户可以访问的操作（例如 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 或 [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)）。默认策略仅允许队列所有者发送和接收消息。

   要定义访问策略，请执行以下操作之一：
   + 选择**基本**，配置谁可以向队列发送消息以及谁可以从队列接收消息。控制台根据您的选择创建策略，并在只读 JSON 面板中显示生成的访问策略。
   + 选择**高级**，直接修改 JSON 访问策略。这允许您指定每个主体（账户、用户或角色）可以执行的一组自定义操作。

1. 对于**重新驱动允许策略**，请选择**启用**。从以下选项中选择一个：**全部允许**、**按队列**或**全部拒绝**。选择**按队列**时，按 Amazon 资源名称 (ARN) 指定最多 10 个源队列的列表。

1. 默认情况下，Amazon SQS 提供托管服务器端加密。要选择加密密钥类型或禁用 Amazon SQS 托管服务器端加密，请展开**加密**。有关加密密钥类型的更多信息，请参阅[使用 SQS 托管的加密密钥为队列配置服务器端加密](sqs-configure-sqs-sse-queue.md)和[使用 Amazon SQS 控制台为队列配置服务器端加密](sqs-configure-sse-existing-queue.md)。
**注意**  
启用 SSE 后，对加密队列的匿名 `SendMessage` 和 `ReceiveMessage` 请求将被拒绝。Amazon SQS 安全最佳实践建议不要使用匿名请求。如果您想向 Amazon SQS 队列发送匿名请求，请确保禁用 SSE。

1. （可选）要将[死信队列](sqs-configure-dead-letter-queue.md)配置为接收无法投递的消息，请展开**死信队列**。

1. （可选）要向队列添加[标签](sqs-configure-tag-queue.md)，请展开**标签**。

1. 选择**创建队列**。Amazon SQS 创建队列并显示队列的**详细信息**页面。

Amazon SQS 会在整个系统中传播有关新队列的信息。由于 Amazon SQS 是一种分布式系统，因此在控制台在**队列**页面上显示队列之前，您可能会遇到轻微的延迟。

创建队列后，您可以向该队列[发送消息](creating-sqs-standard-queues.md#sqs-send-messages)，以及[接收和删除消息](step-receive-delete-message.md)。除队列类型外，您还可以[编辑](sqs-configure-edit-queue.md)任何队列配置设置。

## 使用 FIFO 队列发送消息
<a name="sqs-send-messages-fifo"></a>

创建队列后，您可以向该队列发送消息。

1. 在左侧导航窗格中，选择**队列**。在队列列表中，选择刚刚创建的队列。

1. 从**操作**中，选择**发送和接收消息**。

   控制台会显示**发送和接收消息**页面。

1. 对于**消息正文**，输入消息文本。

1. 对于 First-In-First-Out (FIFO) 队列，请输入**消息组 ID。**有关更多信息，请参阅 [Amazon SQS 中的 FIFO 队列传递逻辑](FIFO-queues-understanding-logic.md)。

1. （可选）对于 FIFO 队列，您可以输入**消息重复数据删除 ID**。如果您为队列启用了基于内容的重复数据删除，则不需要消息重复数据删除 ID。有关更多信息，请参阅 [Amazon SQS 中的 FIFO 队列传递逻辑](FIFO-queues-understanding-logic.md)。

1.  FIFO 队列不支持单个消息的计时器。有关更多信息，请参阅 [Amazon SQS 消息计时器](sqs-message-timers.md)。

1. 选择**发送消息**。

   发送消息后，控制台会显示一条成功消息。选择**查看详细信息**，显示有关已发送消息的信息。

# Amazon SQS 入门的常见任务
<a name="get-started"></a>

现在，您已经创建了队列，并了解了如何发送、接收和删除消息，您可能想要尝试以下操作：
+ 触发 [Lambda 函数](sqs-configure-lambda-function-trigger.md)以自动处理传入的消息，从而无需持续轮询即可实现事件驱动的工作流。
+ [配置队列，包括 SSE 和其他特征](sqs-configuring.md)。
+ [发送带有属性的消息。](sqs-using-send-message-with-attributes.md)
+ [从 VPC 发送消息。](sqs-sending-messages-from-vpc.md)
+ 了解 Amazon SQS 的[功能](sqs-queue-types.md)和[架构](welcome.md#sqs-basic-architecture)。
+ 了解可帮助您充分利用 Amazon SQS 的[指南和注意事项](sqs-best-practices.md)。
+ 浏览软件开发工具包的 Amazon AWS SQS 示例，例如[AWS SDK for Java 2.x 开发](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/)者指南。
+ 了解[亚马逊 SQS 命令。 AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/sqs/)
+ 了解 [Amazon SQS API 操作](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html)。
+ 了解如何通过编程方式与 Amazon SQS 交互。参见[使用 APIs](sqs-making-api-requests-xml.md)和探索[AWS 开发中心](https://aws.amazon.com/developer/)：
  + [Java](https://aws.amazon.com/java/)
  + [JavaScript](https://aws.amazon.com/javascript/)
  + [PHP](https://aws.amazon.com/php/)
  + [Python](https://aws.amazon.com/python/)
  + [Ruby](https://aws.amazon.com/ruby/)
  + [Windows 和 .NET](https://aws.amazon.com/net/)
+ 了解如何监控[成本和资源](sqs-queue-tags.md)。
+ 了解如何[保护您的数据](data-protection.md)。
+ 了解有关 [Amazon SQS 工作流](sqs-creating-custom-policies-process-workflow.md)的更多信息。