QueueClient Класс
Клиент для взаимодействия с определенной очередью.
- Наследование
-
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixinQueueClientazure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueClientazure.storage.queue._encryption.StorageEncryptionMixinQueueClient
Конструктор
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.
- credential
Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если 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
Параметры
Дикт, содержащий пары "имя-значение", которые необходимо связать с очередью в качестве метаданных. Обратите внимание, что имена метаданных сохраняют регистр, с которым они были созданы, однако при задании и чтении регистр не учитывается.
- timeout
- int
Задает время ожидания на стороне сервера для операции в секундах. Дополнительные сведения см. в следующей статье: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Это значение не отслеживается и не проверяется на клиенте. Чтобы настроить время ожидания сети на стороне клиента, см. здесь.
Возвращаемое значение
None или результат cls(response)
Возвращаемый тип
Исключения
Примеры
Создайте очередь.
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
Параметры
- credential
Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если в 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
Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если 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
Параметры
Содержимое сообщения. Допустимый тип определяется 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]
Параметры
Словарь, содержащий пары "имя-значение", которые необходимо связать с очередью в качестве метаданных.
- 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.
Содержимое сообщения. Допустимый тип определяется 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
location_mode
Режим расположения, который в настоящее время использует клиент.
По умолчанию это будет "primary". Варианты включают "primary" и "secondary".
Возвращаемый тип
primary_endpoint
primary_hostname
secondary_endpoint
Полный URL-адрес вторичной конечной точки, если он настроен.
Если он недоступен, будет вызван параметр ValueError. Чтобы явно указать дополнительное имя узла, используйте необязательный аргумент secondary_hostname ключевое слово при создании экземпляра.
Возвращаемый тип
Исключения
secondary_hostname
Имя узла вторичной конечной точки.
Если этот параметр недоступен, это будет Значение Нет. Чтобы явно указать дополнительное имя узла, используйте необязательный аргумент secondary_hostname ключевое слово при создании экземпляра.
Возвращаемый тип
url
Полный URL-адрес конечной точки для этой сущности, включая маркер SAS, если он используется.
Это может быть либо основная конечная точка, либо вторичная конечная точка в зависимости от текущей location_mode. :returns: полный URL-адрес конечной точки для этой сущности, включая маркер SAS, если используется. :rtype: str
Azure SDK for Python