无法通过CLI创建FIFO SQS

时间:2017-04-19 00:05:03

标签: amazon-web-services message-queue amazon-sqs aws-cli

我尝试使用CLI创建FIFO,但是我收到错误

aws sqs create-queue --queue-name my-queue.fifo --attributes FifoQueue=true --region us-east-1

An error occurred (InvalidAttributeName) when calling the CreateQueue operation: Unknown Attribute FifoQueue.

The doc page说这是一个有效的属性。我错过了什么?

2 个答案:

答案 0 :(得分:4)

SQS FIFO队列是N. Virginia在发布时无法提供的罕见服务之一。

请参阅:https://aws.amazon.com/about-aws/whats-new/2016/11/amazon-sqs-introduces-fifo-queues-with-exactly-once-processing-and-lower-prices-for-standard-queues/

  

FIFO队列现在可在美国东部(俄亥俄州)和美国西部(俄勒冈州)地区使用,还有更多地区可供使用。

尝试在支持的某个区域中运行该命令。

俄亥俄:

aws sqs create-queue --queue-name my-queue.fifo --attributes FifoQueue=true --region us-east-2

俄勒冈:

aws sqs create-queue --queue-name my-queue.fifo --attributes FifoQueue=true --region us-west-2

答案 1 :(得分:0)

SQS队列具有两种不同的类型。 1)标准队列 2)Fifo队列

如果使用的是标准队列,请尝试运行用于创建队列的命令。

WITH cte AS (
    SELECT name, phone, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY name) rn
    FROM testtable
)

SELECT 
    name, 
    IIF(rn=1,phone,NULL)

FROM cte

如果您正在使用Fifo队列,请尝试运行用于创建队列的命令。

  • FIFO队列的名称必须以.fifo后缀结尾。后缀计入80个字符的队列名称配额。要确定队列是否为FIFO,可以检查队列名称是否以后缀结尾。
  • 将队列指定为FIFO。有效值:true,false。如果您未指定FifoQueue属性,则Amazon SQS将创建一个标准队列。您只能在队列创建期间提供此属性。您不能为现有队列更改它。设置此属性时,还必须显式提供消息的MessageGroupId。
  • 属性必须在字符串中。

aws sqs create-queue --queue-name <<queue-name>> --attributes VisibilityTimeout=900