Поделиться через


QueueClient Класс

Клиент для взаимодействия с определенной очередью.

Наследование
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixin
QueueClient
azure.storage.queue._shared.base_client.StorageAccountHostsMixin
QueueClient
azure.storage.queue._encryption.StorageEncryptionMixin
QueueClient

Конструктор

QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any)

Параметры

account_url
str
Обязательно

URL-адрес учетной записи хранения. Чтобы создать клиент с полным универсальным кодом ресурса (URI) очереди, используйте from_queue_url классmethod.

queue_name
str
Обязательно

Имя очереди.

credential
значение по умолчанию: None

Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если URL-адрес учетной записи уже содержит маркер SAS. Значением может быть строка маркера SAS, экземпляр AzureSasCredential или AzureNamedKeyCredential из azure.core.credentials, общий ключ доступа учетной записи или экземпляр класса TokenCredentials из azure.identity. Если URI ресурса уже содержит маркер SAS, он будет игнорироваться в пользу явных учетных данных.

  • за исключением случаев AzureSasCredential, где конфликтующие маркеры SAS вызовет ValueError. При использовании экземпляра AzureNamedKeyCredential "имя" должно быть именем учетной записи хранения, а "ключ" — ключом учетной записи хранения.
api_version
str

Версия API хранилища, используемая для запросов. Значение по умолчанию — последняя версия службы, совместимая с текущим пакетом SDK. Установка более старой версии может привести к снижению совместимости функций.

secondary_hostname
str

Имя узла вторичной конечной точки.

message_encode_policy

Политика кодирования, используемая для исходящих сообщений. По умолчанию не кодируются сообщения. Другие варианты включают <xref:azure.storage.queue.aio.TextBase64EncodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64EncodePolicy> или Нет.

message_decode_policy

Политика декодирования, используемая для входящих сообщений. Значение по умолчанию не является декодированием сообщений. Другие варианты включают <xref:azure.storage.queue.aio.TextBase64DecodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64DecodePolicy> или Нет.

audience
str

Аудитория, используемая при запросе маркеров для проверки подлинности Azure Active Directory. Действует только в том случае, если учетные данные имеют тип TokenCredential. Значение может быть https://storage.azure.com/ (по умолчанию) или https://.queue.core.windows.net.

Примеры

Создайте клиент очереди с URL-адресом и учетными данными.


   token_auth_queue = QueueClient.from_queue_url(
       queue_url=queue.url,
       credential=sas_token
   )

Создайте клиент очереди с строка подключения.


   from azure.storage.queue.aio import QueueClient
   queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")

Методы

clear_messages

Удаляет все сообщения из указанной очереди.

close

Этот метод позволяет закрыть сокеты, открытые клиентом. Его не нужно использовать при использовании с диспетчером контекста.

create_queue

Создает новую очередь в учетной записи хранения.

Если очередь с таким именем уже существует, операция завершается ошибкой ResourceExistsError.

delete_message

Удаляет указанное сообщение.

Обычно после того, как клиент получает сообщение с помощью операции получения сообщений, клиент должен обработать и удалить сообщение. Чтобы удалить сообщение, необходимо иметь сам объект сообщения или два элемента данных: id и pop_receipt. Идентификатор возвращается из предыдущей операции receive_messages. Pop_receipt возвращается из последней receive_messages операции или update_message . Чтобы операция delete_message завершилась успешно, pop_receipt, указанная в запросе, должна соответствовать pop_receipt, возвращенной операцией receive_messages или update_message .

delete_queue

Удаляет указанную очередь и все содержащиеся в ней сообщения.

После успешного удаления очередь сразу помечается для удаления и больше не доступна клиентам. Впоследствии очередь удаляется из службы очередей в процессе сборки мусора.

Обратите внимание, что удаление очереди, скорее всего, займет не менее 40 секунд. При попытке выполнить операцию с очередью во время ее удаления будет выдано <xref:azure.storage.queue.aio.HttpResponseError> исключение .

from_connection_string

Создайте QueueClient из строки подключения.

from_queue_url

Клиент для взаимодействия с определенной очередью.

get_queue_access_policy

Возвращает сведения о всех хранимых политиках доступа, указанных в очереди, которые могут использоваться с подписанными URL-адресами.

get_queue_properties

Возвращает все пользовательские метаданные для указанной очереди.

Возвращаемые данные не включают список сообщений очереди.

peek_messages

Извлекает одно или несколько сообщений из передней части очереди, но не изменяет видимость сообщения.

Можно извлекать только видимые сообщения. Когда сообщение извлекается в первый раз с помощью вызова receive_messages, его свойству dequeue_count присваивается значение 1. Если он не удаляется, а затем возвращается снова, свойство dequeue_count увеличивается. Клиент может использовать это значение, чтобы определить, сколько раз извлекалось сообщение. Обратите внимание, что вызов peek_messages не увеличивает значение dequeue_count, но возвращает это значение для чтения клиентом.

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщения будут расшифрованы перед возвратом.

receive_message

Удаляет одно сообщение из передней части очереди.

При извлечении сообщения из очереди ответ включает содержимое сообщения и значение pop_receipt, которое необходимо для удаления сообщения. Сообщение не удаляется из очереди автоматически, но после его извлечения оно не отображается другим клиентам в течение интервала времени, указанного параметром visibility_timeout.

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщение будет расшифровано перед возвратом.

receive_messages

Удаляет одно или несколько сообщений из передней части очереди.

При извлечении сообщения из очереди ответ включает содержимое сообщения и значение pop_receipt, необходимое для удаления сообщения. Сообщение не удаляется из очереди автоматически, но после его извлечения оно не отображается другим клиентам в течение интервала времени, указанного параметром visibility_timeout. Итератор будет непрерывно извлекает сообщения до тех пор, пока очередь не станет пустой или max_messages не будет достигнута (если задано max_messages).

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщения будут расшифрованы перед возвратом.

send_message

Добавляет новое сообщение в заднюю часть очереди сообщений.

Время ожидания видимости указывает время, когда сообщение будет невидимым. После истечения времени ожидания сообщение станет видимым. Если время ожидания видимости не указано, по умолчанию используется значение 0.

Срок жизни сообщения указывает, как долго сообщение будет оставаться в очереди. При истечении срока существования сообщение удаляется из очереди.

Если для локального объекта службы задано поле key-encryption-key, этот метод шифрует содержимое перед отправкой.

set_queue_access_policy

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

При установке разрешений для очереди существующие разрешения заменяются. Чтобы обновить разрешения очереди, вызовите get_queue_access_policy для получения всех политик доступа, связанных с очередью, измените политику доступа, которую вы хотите изменить, а затем вызовите эту функцию с полным набором данных для выполнения обновления.

Для ввода в действие хранимой политики доступа в очереди после настройки может потребоваться до 30 секунд. В течение этого интервала подписанный URL-адрес, связанный с хранимой политикой доступа, будет вызывать исключение , <xref:azure.storage.queue.aio.HttpResponseError> пока политика доступа не станет активной.

set_queue_metadata

Задает определяемые пользователем метаданные в указанной очереди.

Метаданные связаны с очередью в виде пар "имя-значение".

update_message

Обновления время ожидания видимости сообщения. Можно также воспользоваться этой операцией для обновления содержимого сообщений.

Эту операцию можно использовать для постоянного расширения невидимости сообщения очереди. Эта функция может быть полезна, если требуется, чтобы рабочая роль "арендовы" сообщения очереди. Например, если рабочая роль вызывает receive_messages и признает, что ей требуется больше времени для обработки сообщения, она может постоянно расширять невидимость сообщения до тех пор, пока оно не будет обработано. Если рабочая роль завершалась ошибкой во время обработки, то сообщение в конечном итоге снова становилось бы видимым и его могла бы обработать другая рабочая роль.

Если для локального объекта службы задано поле key-encryption-key, этот метод шифрует содержимое перед отправкой.

clear_messages

Удаляет все сообщения из указанной очереди.

async clear_messages(**kwargs: Any) -> None

Параметры

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Примеры

Очищает все сообщения.


   await queue.clear_messages()

close

Этот метод позволяет закрыть сокеты, открытые клиентом. Его не нужно использовать при использовании с диспетчером контекста.

async close()

create_queue

Создает новую очередь в учетной записи хранения.

Если очередь с таким именем уже существует, операция завершается ошибкой ResourceExistsError.

async create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None

Параметры

metadata
dict(str,str)

Дикт, содержащий пары "имя-значение", которые необходимо связать с очередью в качестве метаданных. Обратите внимание, что имена метаданных сохраняют регистр, с которым они были созданы, однако при задании и чтении регистр не учитывается.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

None или результат cls(response)

Возвращаемый тип

Исключения

StorageErrorException

Примеры

Создайте очередь.


   await queue.create_queue()

delete_message

Удаляет указанное сообщение.

Обычно после того, как клиент получает сообщение с помощью операции получения сообщений, клиент должен обработать и удалить сообщение. Чтобы удалить сообщение, необходимо иметь сам объект сообщения или два элемента данных: id и pop_receipt. Идентификатор возвращается из предыдущей операции receive_messages. Pop_receipt возвращается из последней receive_messages операции или update_message . Чтобы операция delete_message завершилась успешно, pop_receipt, указанная в запросе, должна соответствовать pop_receipt, возвращенной операцией receive_messages или update_message .

async delete_message(message: str | QueueMessage, pop_receipt: str | None = None, **kwargs: Any) -> None

Параметры

message
str или QueueMessage
Обязательно

Объект или идентификатор сообщения, определяющий удаляемое сообщение.

pop_receipt
str
Обязательно

Допустимое значение всплывающего уведомления, возвращенное при предыдущем вызове receive_messages или update_message.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Примеры

Удаление сообщения.


   # Get the message at the front of the queue
   messages = queue.receive_messages()
   async for msg in messages:
       # Delete the specified message
       await queue.delete_message(msg)

delete_queue

Удаляет указанную очередь и все содержащиеся в ней сообщения.

После успешного удаления очередь сразу помечается для удаления и больше не доступна клиентам. Впоследствии очередь удаляется из службы очередей в процессе сборки мусора.

Обратите внимание, что удаление очереди, скорее всего, займет не менее 40 секунд. При попытке выполнить операцию с очередью во время ее удаления будет выдано <xref:azure.storage.queue.aio.HttpResponseError> исключение .

async delete_queue(**kwargs: Any) -> None

Параметры

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемый тип

Примеры

Удаление очереди.


   await queue.delete_queue()

from_connection_string

Создайте QueueClient из строки подключения.

from_connection_string(conn_str: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any) -> Self

Параметры

conn_str
str
Обязательно

Строка подключения в учетную запись хранения Azure.

queue_name
str
Обязательно

Имя очереди.

credential
значение по умолчанию: None

Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если в URL-адресе учетной записи уже есть маркер SAS или у строка подключения уже есть значения общего ключа доступа. Значением может быть строка маркера SAS, экземпляр AzureSasCredential или AzureNamedKeyCredential из azure.core.credentials, общий ключ доступа учетной записи или экземпляр класса TokenCredentials из azure.identity. Предоставленные здесь учетные данные будут иметь приоритет над учетными данными в строка подключения. При использовании экземпляра AzureNamedKeyCredential "имя" должно быть именем учетной записи хранения, а "ключ" — ключом учетной записи хранения.

audience
str

Аудитория, используемая при запросе маркеров для проверки подлинности Azure Active Directory. Действует только в том случае, если учетные данные имеют тип TokenCredential. Значение может быть https://storage.azure.com/ (по умолчанию) или https://.queue.core.windows.net.

Возвращаемое значение

Клиент очереди.

Возвращаемый тип

Примеры

Создайте клиент очереди из строка подключения.


   from azure.storage.queue import QueueClient
   queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")

from_queue_url

Клиент для взаимодействия с определенной очередью.

from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any) -> Self

Параметры

queue_url
str
Обязательно

Полный универсальный код ресурса (URI) очереди, включая маркер SAS, если он используется.

credential
значение по умолчанию: None

Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если URL-адрес учетной записи уже содержит маркер SAS. Значением может быть строка маркера SAS, экземпляр AzureSasCredential или AzureNamedKeyCredential из azure.core.credentials, общий ключ доступа учетной записи или экземпляр класса TokenCredentials из azure.identity. Если URI ресурса уже содержит маркер SAS, он будет игнорироваться в пользу явных учетных данных.

  • за исключением случаев AzureSasCredential, где конфликтующие маркеры SAS вызовет ValueError. При использовании экземпляра AzureNamedKeyCredential "имя" должно быть именем учетной записи хранения, а "ключ" — ключом учетной записи хранения.
audience
str

Аудитория, используемая при запросе маркеров для проверки подлинности Azure Active Directory. Действует только в том случае, если учетные данные имеют тип TokenCredential. Значение может быть https://storage.azure.com/ (по умолчанию) или https://.queue.core.windows.net.

Возвращаемое значение

Клиент очереди.

Возвращаемый тип

get_queue_access_policy

Возвращает сведения о всех хранимых политиках доступа, указанных в очереди, которые могут использоваться с подписанными URL-адресами.

async get_queue_access_policy(**kwargs: Any) -> Dict[str, AccessPolicy]

Параметры

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

Словарь политик доступа, связанных с очередью.

Возвращаемый тип

get_queue_properties

Возвращает все пользовательские метаданные для указанной очереди.

Возвращаемые данные не включают список сообщений очереди.

async get_queue_properties(**kwargs: Any) -> QueueProperties

Параметры

timeout
int

Параметр времени ожидания указывается в секундах.

Возвращаемое значение

Определяемые пользователем метаданные для очереди.

Возвращаемый тип

Примеры

Получение свойств очереди.


   properties = await queue.get_queue_properties()

peek_messages

Извлекает одно или несколько сообщений из передней части очереди, но не изменяет видимость сообщения.

Можно извлекать только видимые сообщения. Когда сообщение извлекается в первый раз с помощью вызова receive_messages, его свойству dequeue_count присваивается значение 1. Если он не удаляется, а затем возвращается снова, свойство dequeue_count увеличивается. Клиент может использовать это значение, чтобы определить, сколько раз извлекалось сообщение. Обратите внимание, что вызов peek_messages не увеличивает значение dequeue_count, но возвращает это значение для чтения клиентом.

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщения будут расшифрованы перед возвратом.

async peek_messages(max_messages: int | None = None, **kwargs: Any) -> List[QueueMessage]

Параметры

max_messages
int
Обязательно

Безнулевое целочисленное значение, которое определяет количество сообщений для извлечения из очереди (не более 32). По умолчанию эта операция извлекает одно сообщение из очереди.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

Список объектов QueueMessage. Обратите внимание, что next_visible_on и pop_receipt не будут заполнены, так как при просмотре сообщение не отображается и можно получить только уже видимые сообщения.

Возвращаемый тип

Примеры

Обзор сообщений.


   # Peek at one message at the front of the queue
   msg = await queue.peek_messages()

   # Peek at the last 5 messages
   messages = await queue.peek_messages(max_messages=5)

   # Print the last 5 messages
   for message in messages:
       print(message.content)

receive_message

Удаляет одно сообщение из передней части очереди.

При извлечении сообщения из очереди ответ включает содержимое сообщения и значение pop_receipt, которое необходимо для удаления сообщения. Сообщение не удаляется из очереди автоматически, но после его извлечения оно не отображается другим клиентам в течение интервала времени, указанного параметром visibility_timeout.

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщение будет расшифровано перед возвратом.

async receive_message(*, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage | None

Параметры

visibility_timeout
int

Если не указано, значение по умолчанию равно 30. Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Значение должно быть больше или равно 1 и не может превышать 7 дней. Для времени ожидания видимости сообщения нельзя задать значение позже истечения срока. visibility_timeout должно быть задано значение меньше срока жизни.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

Возвращает сообщение из очереди или Нет, если очередь пуста.

Возвращаемый тип

Примеры

Получение одного сообщения из очереди.


       # Pop two messages from the front of the queue
       message1 = await queue.receive_message()
       message2 = await queue.receive_message()
       # We should see message 3 if we peek
       message3 = await queue.peek_messages()

       if not message1 or not message2 or not message3:
           raise ValueError("One of the messages are None.")

       print(message1.content)
       print(message2.content)
       print(message3[0].content)

receive_messages

Удаляет одно или несколько сообщений из передней части очереди.

При извлечении сообщения из очереди ответ включает содержимое сообщения и значение pop_receipt, необходимое для удаления сообщения. Сообщение не удаляется из очереди автоматически, но после его извлечения оно не отображается другим клиентам в течение интервала времени, указанного параметром visibility_timeout. Итератор будет непрерывно извлекает сообщения до тех пор, пока очередь не станет пустой или max_messages не будет достигнута (если задано max_messages).

Если для локального объекта службы задано поле key-encryption-key или resolver, сообщения будут расшифрованы перед возвратом.

receive_messages(*, messages_per_page: int | None = None, visibility_timeout: int | None = None, max_messages: int | None = None, **kwargs: Any) -> AsyncItemPaged[QueueMessage]

Параметры

messages_per_page
int

Ненулевое целочисленное значение, которое определяет количество сообщений для получения из очереди (не более 32). Если видимых сообщений меньше, то возвращаются только видимые. По умолчанию эта операция возвращает одно сообщение из очереди. by_page() можно использовать для предоставления итератора страницы в AsyncItemPaged, если задано messages_per_page. Next() можно использовать для получения следующей страницы.

visibility_timeout
int

Если не указано, значение по умолчанию равно 30. Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Значение должно быть больше или равно 1 и не может превышать 7 дней. Для времени ожидания видимости сообщения нельзя задать значение позже истечения срока. visibility_timeout должно быть задано значение меньше срока жизни.

max_messages
int

Целое число, указывающее максимальное количество сообщений, извлекаемых из очереди.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

Возвращает итератор сообщения объектов Message, похожих на диктовку.

Возвращаемый тип

Примеры

Получение сообщений из очереди.


   # Receive messages one-by-one
   messages = queue.receive_messages()
   async for msg in messages:
       print(msg.content)

   # Receive messages by batch
   messages = queue.receive_messages(messages_per_page=5)
   async for msg_batch in messages.by_page():
       async for msg in msg_batch:
           print(msg.content)
           await queue.delete_message(msg)

send_message

Добавляет новое сообщение в заднюю часть очереди сообщений.

Время ожидания видимости указывает время, когда сообщение будет невидимым. После истечения времени ожидания сообщение станет видимым. Если время ожидания видимости не указано, по умолчанию используется значение 0.

Срок жизни сообщения указывает, как долго сообщение будет оставаться в очереди. При истечении срока существования сообщение удаляется из очереди.

Если для локального объекта службы задано поле key-encryption-key, этот метод шифрует содержимое перед отправкой.

async send_message(content: object | None, *, visibility_timeout: int | None = None, time_to_live: int | None = None, **kwargs: Any) -> QueueMessage

Параметры

content
Optional[object]
Обязательно

Содержимое сообщения. Допустимый тип определяется encode_function, заданным в службе. Значение по умолчанию — str. Закодированное сообщение может иметь размер до 64 КБ.

visibility_timeout
int

Если не указано, значение по умолчанию равно 0. Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Значение должно быть больше или равно 0 и не может превышать 7 дней. Для времени ожидания видимости сообщения нельзя задать значение позже истечения срока. visibility_timeout должно быть задано значение меньше срока жизни.

time_to_live
int

Задает интервал срока существования сообщения в секундах. Срок жизни может быть любым положительным числом или -1 для бесконечности. Если этот параметр пропущен, по умолчанию срок существования составляет 7 дней.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.

Возвращаемое значение

Объект QueueMessage. Этот объект также заполняется содержимым, хотя он не возвращается из службы.

Возвращаемый тип

Примеры

Отправка сообщений.


   await asyncio.gather(
       queue.send_message("message1"),
       queue.send_message("message2", visibility_timeout=30),  # wait 30s before becoming visible
       queue.send_message("message3"),
       queue.send_message("message4"),
       queue.send_message("message5")
   )

set_queue_access_policy

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

При установке разрешений для очереди существующие разрешения заменяются. Чтобы обновить разрешения очереди, вызовите get_queue_access_policy для получения всех политик доступа, связанных с очередью, измените политику доступа, которую вы хотите изменить, а затем вызовите эту функцию с полным набором данных для выполнения обновления.

Для ввода в действие хранимой политики доступа в очереди после настройки может потребоваться до 30 секунд. В течение этого интервала подписанный URL-адрес, связанный с хранимой политикой доступа, будет вызывать исключение , <xref:azure.storage.queue.aio.HttpResponseError> пока политика доступа не станет активной.

async set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None

Параметры

signed_identifiers
Dict[str, AccessPolicy]
Обязательно

Политики доступа SignedIdentifier для связывания с очередью. Может содержать до 5 элементов. Пустой дикт очистит политики доступа, заданные для службы.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Сведения о настройке времени ожидания сети на стороне клиента см. здесь.

Примеры

Задайте политику доступа в очереди.


   # Create an access policy
   from azure.storage.queue import AccessPolicy, QueueSasPermissions
   access_policy = AccessPolicy()
   access_policy.start = datetime.utcnow() - timedelta(hours=1)
   access_policy.expiry = datetime.utcnow() + timedelta(hours=1)
   access_policy.permission = QueueSasPermissions(read=True)
   identifiers = {'my-access-policy-id': access_policy}

   # Set the access policy
   await queue.set_queue_access_policy(identifiers)

set_queue_metadata

Задает определяемые пользователем метаданные в указанной очереди.

Метаданные связаны с очередью в виде пар "имя-значение".

async set_queue_metadata(metadata: Dict[str, str] | None = None, **kwargs: Any) -> Dict[str, Any]

Параметры

metadata
Optional[Dict[str, Any]]
Обязательно

Словарь, содержащий пары "имя-значение", которые необходимо связать с очередью в качестве метаданных.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Сведения о настройке времени ожидания сети на стороне клиента см. здесь.

Возвращаемое значение

Словарь заголовков ответов.

Возвращаемый тип

Примеры

Задайте метаданные в очереди.


   metadata = {'foo': 'val1', 'bar': 'val2', 'baz': 'val3'}
   await queue.set_queue_metadata(metadata=metadata)

update_message

Обновления время ожидания видимости сообщения. Можно также воспользоваться этой операцией для обновления содержимого сообщений.

Эту операцию можно использовать для постоянного расширения невидимости сообщения очереди. Эта функция может быть полезна, если требуется, чтобы рабочая роль "арендовы" сообщения очереди. Например, если рабочая роль вызывает receive_messages и признает, что ей требуется больше времени для обработки сообщения, она может постоянно расширять невидимость сообщения до тех пор, пока оно не будет обработано. Если рабочая роль завершалась ошибкой во время обработки, то сообщение в конечном итоге снова становилось бы видимым и его могла бы обработать другая рабочая роль.

Если для локального объекта службы задано поле key-encryption-key, этот метод шифрует содержимое перед отправкой.

async update_message(message: str | QueueMessage, pop_receipt: str | None = None, content: object | None = None, *, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage

Параметры

message
str или QueueMessage
Обязательно

Объект или идентификатор сообщения, определяющий обновляемую версию сообщения.

pop_receipt
str
Обязательно

Допустимое значение подтверждения, полученное из предыдущего вызова метода receive_messages или операции update_message.

content
Optional[object]
Обязательно

Содержимое сообщения. Допустимый тип определяется encode_function, заданным в службе. Значение по умолчанию — str.

visibility_timeout
int

Указывает новое значение времени ожидания видимости в секундах, отсчитываемое относительно времени сервера. Новое значение должно быть больше или равно 0 и не может превышать 7 дней. Для времени ожидания видимости сообщения нельзя задать значение позже истечения срока. Сообщения можно обновлять, пока оно не будет удалено или пока не кончится срок его действия. Объект сообщения или идентификатор сообщения, определяющий обновляемую версию сообщения.

timeout
int

Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Сведения о настройке времени ожидания сети на стороне клиента см. здесь.

Возвращаемое значение

Объект QueueMessage. Для удобства этот объект также заполняется содержимым, хотя он не возвращается службой.

Возвращаемый тип

Примеры

Обновление сообщения.


   # Send a message
   await queue.send_message("update me")

   # Receive the message
   messages = queue.receive_messages()

   # Update the message
   async for message in messages:
       message = await queue.update_message(
           message,
           visibility_timeout=0,
           content="updated")

Атрибуты

api_version

Версия API хранилища, используемого для запросов.

Возвращаемый тип

str

location_mode

Режим расположения, который в настоящее время использует клиент.

По умолчанию это будет "primary". Варианты включают "primary" и "secondary".

Возвращаемый тип

str

primary_endpoint

Полный URL-адрес основной конечной точки.

Возвращаемый тип

str

primary_hostname

Имя узла основной конечной точки.

Возвращаемый тип

str

secondary_endpoint

Полный URL-адрес вторичной конечной точки, если он настроен.

Если он недоступен, будет вызван параметр ValueError. Чтобы явно указать дополнительное имя узла, используйте необязательный аргумент secondary_hostname ключевое слово при создании экземпляра.

Возвращаемый тип

str

Исключения

secondary_hostname

Имя узла вторичной конечной точки.

Если этот параметр недоступен, это будет Значение Нет. Чтобы явно указать дополнительное имя узла, используйте необязательный аргумент secondary_hostname ключевое слово при создании экземпляра.

Возвращаемый тип

url

Полный URL-адрес конечной точки для этой сущности, включая маркер SAS, если он используется.

Это может быть либо основная конечная точка, либо вторичная конечная точка в зависимости от текущей location_mode. :returns: полный URL-адрес конечной точки для этой сущности, включая маркер SAS, если используется. :rtype: str