Amazon Simple Queue Service
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

教程:创建 Amazon SQS 队列

最首要最常见的 Amazon SQS 任务是创建队列。以下示例演示了如何创建和配置队列。

AWS 管理控制台

  1. 登录 Amazon SQS 控制台

  2. 选择 Create New Queue。

  3. Create New Queue 页上,确保您位于正确的区域,然后键入 Queue Name

    注意

    FIFO 队列的名称必须以 .fifo 后缀结尾。 在 美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈) 和 欧洲(爱尔兰) 区域都提供 FIFO 队列。

  4. 默认情况下已选择 标准。选择 FIFO

  5. 创建队列。

    • 要使用默认参数创建队列,请选择 Quick-Create Queue

    • 要配置队列的参数,请选择 Configure Queue。配置完参数后,请选择 Create Queue

      以下示例显示了特定于 FIFO 队列的 Content-Based Deduplication 参数。

    您的新队列随即将会创建并在队列列表中处于选中状态。

    注意

    创建队列时,队列可能需要一小段时间在整个 Amazon SQS 中传播。

    Queue Type 列将帮助您一眼区分出标准队列与 FIFO 队列。对于 FIFO 队列,Content-Based Deduplication 列将显示您是否已启用一次性处理

    您的队列的名称URLARN 将显示在详细信息选项卡上。

Java

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

创建 标准 队列

  1. 复制示例程序

    以下代码部分将创建 MyQueue 队列:

    Copy
    // Create a queue System.out.println("Creating a new SQS queue called MyQueue.\n"); CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName("MyQueue"); String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
  2. 编译并运行示例。

    队列已创建。

创建 FIFO 队列

  1. 复制示例程序

    以下代码部分将创建 MyFifoQueue.fifo 队列:

    Copy
    // Create a FIFO queue System.out.println("Creating a new Amazon SQS FIFO queue called MyFifoQueue.fifo.\n"); Map<String, String> attributes = new HashMap<String, String>(); // A FIFO queue must have the FifoQueue attribute set to True attributes.put("FifoQueue", "true"); // Generate a MessageDeduplicationId based on the content, if the user doesn't provide a MessageDeduplicationId attributes.put("ContentBasedDeduplication", "true"); // The FIFO queue name must end with the .fifo suffix CreateQueueRequest createQueueRequest = new CreateQueueRequest("MyFifoQueue.fifo").withAttributes(attributes); String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
  2. 编译并运行示例。

    队列已创建。

AWS CloudFormation

您可以使用 AWS CloudFormation 控制台和 JSON (或 YAML) 模板创建 Amazon SQS 队列。有关更多信息,请参阅 AWS CloudFormation 用户指南 中的使用 AWS CloudFormation 模板AWS::SQS::Queue 资源

  1. 将以下 JSON 代码复制到名为 MyQueue.json 的文件中。要创建标准队列,请省略 FifoQueueContentBasedDeduplication 属性。有关基于内容的重复数据删除的更多信息,请参阅确切一次处理

    注意

    FIFO 队列的名称必须以 .fifo 后缀结尾。 在 美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈) 和 欧洲(爱尔兰) 区域都提供 FIFO 队列。

    Copy
    { "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyQueue": { "Properties": { "QueueName": "MyQueue.fifo", "FifoQueue": true, "ContentBasedDeduplication": true }, "Type": "AWS::SQS::Queue" } }, "Outputs": { "QueueName": { "Description": "The name of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "QueueName" ] } }, "QueueURL": { "Description": "The URL of the queue", "Value": { "Ref": "MyQueue" } }, "QueueARN": { "Description": "The ARN of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "Arn" ] } } } }
  2. 登录 AWS CloudFormation 控制台 (网址为 https://console.aws.amazon.com/cloudformation),然后选择 Create Stack

  3. Select Template 页面上,依次选择 Upload a template to Amazon S3、您的 MyQueue.json 文件和 Next

  4. Specify Details 页面上,为 Stack Name 键入 MyQueue,然后选择 Next

  5. Options 页面上,选择 Next

  6. Review 页面上,选择 Create

    AWS CloudFormation 开始创建 MyQueue 堆栈,并显示 CREATE_IN_PROGRESS 状态。在此过程完成后,AWS CloudFormation 将显示 CREATE_COMPLETE 状态。

  7. (可选) 要显示队列的名称、URL 和 ARN,请选择堆栈的名称,然后在下一页上展开 Outputs 部分。