boto3:找不到之前立即创建的队列
boto3: can't find queue that was immediately created before
我在 boto3 中创建了一个 SQS 队列,并立即通过 sqs.list_queues
查找它,但它不会 return 任何东西。
当我在控制台中输入 SQS 队列名称时,它不会return任何东西,直到我第二次再次输入它。
这是否意味着我需要调用 list_queues 两次?为什么会这样?为什么 AWS return 队列不是之前立即创建的?
sqs = boto3.client('sqs')
myQ = sqs.create_queue(QueueName='just_created')
response = sqs.list_queues(
QueueNamePrefix='just_created'
)
response
不包含通常的数组QueueUrls
就像许多 AWS 服务一样,SQS 控制平面最终是一致的,这意味着跨系统传播数据需要一段时间。
如果您需要刚刚创建的队列的 URL,可以在 create_queue
调用的 return 值中找到它。
以下操作创建一个名为 MyQueue 的 SQS 队列。
response = client.create_queue(
QueueName='MyQueue',
)
print(response)
预期输出:
{
'QueueUrl': 'https://queue.amazonaws.com/012345678910/MyQueue',
'ResponseMetadata': {
'...': '...',
},
}
我在 boto3 中创建了一个 SQS 队列,并立即通过 sqs.list_queues
查找它,但它不会 return 任何东西。
当我在控制台中输入 SQS 队列名称时,它不会return任何东西,直到我第二次再次输入它。
这是否意味着我需要调用 list_queues 两次?为什么会这样?为什么 AWS return 队列不是之前立即创建的?
sqs = boto3.client('sqs')
myQ = sqs.create_queue(QueueName='just_created')
response = sqs.list_queues(
QueueNamePrefix='just_created'
)
response
不包含通常的数组QueueUrls
就像许多 AWS 服务一样,SQS 控制平面最终是一致的,这意味着跨系统传播数据需要一段时间。
如果您需要刚刚创建的队列的 URL,可以在 create_queue
调用的 return 值中找到它。
以下操作创建一个名为 MyQueue 的 SQS 队列。
response = client.create_queue(
QueueName='MyQueue',
)
print(response)
预期输出:
{
'QueueUrl': 'https://queue.amazonaws.com/012345678910/MyQueue',
'ResponseMetadata': {
'...': '...',
},
}