boto3: не могу найти очередь, которая была сразу создана ранее - PullRequest
0 голосов
/ 17 июня 2019

Я создаю очередь SQS в boto3 и сразу ищу ее через 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

1 Ответ

1 голос
/ 17 июня 2019

Как и многие сервисы AWS, плоскость управления SQS в конечном итоге становится согласованной, что означает, что для распространения данных по системам требуется некоторое время.

Если вам нужен URL только что созданной очереди, вы можете найти его в возвращаемом значении вызова create_queue.

Следующая операция создает очередь SQS с именем MyQueue.

response = client.create_queue(
    QueueName='MyQueue',
)

print(response)

Ожидаемый результат:

{
    'QueueUrl': 'https://queue.amazonaws.com/012345678910/MyQueue',
    'ResponseMetadata': {
        '...': '...',
    },
}
...