我在boto3中创建了一个SQS队列,并立即通过sqs.list_queues
查找它,但不会返回任何内容。
当我在控制台中输入SQS队列名称时,它只有在第二次再次输入时才返回任何内容。
这是否意味着我需要两次调用list_queues?为什么会这样呢?为什么没有立即创建的AWS返回队列?
sqs = boto3.client('sqs')
myQ = sqs.create_queue(QueueName='just_created')
response = sqs.list_queues(
QueueNamePrefix='just_created'
)
response
不包含通常的QueueUrls
答案 0 :(得分:1)
就像许多AWS服务一样,SQS控制平面最终是一致的,这意味着需要花费一些时间才能在整个系统中传播数据。
如果需要刚刚创建的队列的URL,可以在create_queue
调用的返回值中找到它。
以下操作将创建一个名为MyQueue的SQS队列。
response = client.create_queue(
QueueName='MyQueue',
)
print(response)
预期输出:
{
'QueueUrl': 'https://queue.amazonaws.com/012345678910/MyQueue',
'ResponseMetadata': {
'...': '...',
},
}