QueueClient Clase
Un cliente para interactuar con una cola específica.
Para obtener más configuración opcional, haga clic aquí.
- Herencia
-
azure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueClientazure.storage.queue._encryption.StorageEncryptionMixinQueueClient
Constructor
QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)
Parámetros
- account_url
- str
Dirección URL de la cuenta de almacenamiento. Para crear un cliente dado el URI completo a la cola, use el from_queue_url método classmethod.
- credential
Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Si el URI del recurso ya contiene un token de SAS, se omitirá en favor de una credencial explícita.
- excepto en el caso de AzureSasCredential, donde los tokens de SAS en conflicto generarán un valor ValueError. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.
- api_version
- str
La versión de la API de storage que se va a usar para las solicitudes. El valor predeterminado es la versión de servicio más reciente que es compatible con el SDK actual. Establecer en una versión anterior puede dar lugar a una compatibilidad de características reducida.
- secondary_hostname
- str
El nombre de host del punto de conexión secundario.
- message_encode_policy
Directiva de codificación que se va a usar en los mensajes salientes. El valor predeterminado no es codificar los mensajes. Otras opciones incluyen TextBase64EncodePolicy, BinaryBase64EncodePolicy o None.
- message_decode_policy
Directiva de descodificación que se va a usar en los mensajes entrantes. El valor predeterminado no es descodificar mensajes. Otras opciones incluyen TextBase64DecodePolicy, BinaryBase64DecodePolicy o None.
- audience
- str
Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.
Ejemplos
Cree el cliente de cola con la dirección URL y la credencial.
token_auth_queue = QueueClient.from_queue_url(
queue_url=queue.url,
credential=sas_token
)
Métodos
clear_messages |
Elimina todos los mensajes de la cola especificada. |
close |
Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos. |
create_queue |
Crea una nueva cola en la cuenta de almacenamiento. Si ya existe una cola con el mismo nombre, se produce un error en la operación con resourceExistsError. |
delete_message |
Elimina el mensaje especificado. Normalmente, después de que un cliente recupere un mensaje con la operación de recepción de mensajes, se espera que el cliente procese y elimine el mensaje. Para eliminar el mensaje, debe tener el propio objeto message o dos elementos de datos: id y pop_receipt. El identificador se devuelve de la operación de receive_messages anterior. El pop_receipt se devuelve de la operación o update_message más recientereceive_messages. Para que la operación de delete_message se realice correctamente, el pop_receipt especificado en la solicitud debe coincidir con el pop_receipt devuelto de la receive_messages operación o update_message . |
delete_queue |
Elimina la cola especificada y los mensajes que contiene. Cuando una cola se elimina correctamente, se marca inmediatamente para su eliminación y ya no es accesible para los clientes. La cola se quita más tarde del servicio Cola, durante la recolección de elementos no utilizados. Tenga en cuenta que es probable que la eliminación de una cola tarde al menos 40 segundos en completarse. Si se intenta realizar una operación en la cola mientras se estaba eliminando, se producirá una <xref:azure.storage.queue.HttpResponseError> excepción . |
from_connection_string |
Cree QueueClient a partir de una cadena de conexión. |
from_queue_url |
Un cliente para interactuar con una cola específica. |
get_queue_access_policy |
Devuelve detalles sobre las directivas de acceso almacenadas especificadas en la cola que se pueden usar con firmas de acceso compartido. |
get_queue_properties |
Devuelve todos los metadatos definidos por el usuario para la cola especificada. Los datos devueltos no incluyen la lista de mensajes de la cola. |
peek_messages |
Recupera uno o varios mensajes desde la parte delantera de la cola, pero no modifica la visibilidad del mensaje. Solo se pueden recuperar los mensajes visibles. Cuando se recupera un mensaje por primera vez con una llamada a receive_messages, su propiedad dequeue_count se establece en 1. Si no se elimina y se recupera posteriormente de nuevo, se incrementa la propiedad dequeue_count. El cliente puede utilizar este valor para determinar cuántas veces se ha recuperado un mensaje. Tenga en cuenta que una llamada a peek_messages no incrementa el valor de dequeue_count, pero devuelve este valor para que el cliente lea. Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse. |
receive_message |
Quita un mensaje de la parte delantera de la cola. Cuando el mensaje se recupera de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout. Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, el mensaje se descifrará antes de devolverse. |
receive_messages |
Quita uno o varios mensajes de la parte delantera de la cola. Cuando se recupera un mensaje de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout. El iterador capturará continuamente los mensajes hasta que la cola esté vacía o max_messages se alcance (si se establece max_messages). Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse. |
send_message |
Agrega un nuevo mensaje a la parte posterior de la cola de mensajes. El tiempo de espera de visibilidad especifica la hora en que el mensaje será invisible. Una vez agotado el tiempo de espera, el mensaje se hará visible. Si no se especifica un tiempo de espera de visibilidad, se utiliza el valor predeterminado 0. El período de vida del mensaje especifica cuánto tiempo permanecerá un mensaje en la cola. El mensaje se eliminará de la cola cuando caduque el período de vida. Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo. |
set_queue_access_policy |
Establece directivas de acceso almacenadas para la cola que se pueden utilizar con firmas de acceso compartido. Al establecer los permisos para una cola, los permisos existentes se reemplazan. Para actualizar los permisos de la cola, llame get_queue_access_policy a para capturar todas las directivas de acceso asociadas a la cola, modifique la directiva de acceso que desea cambiar y, a continuación, llame a esta función con el conjunto completo de datos para realizar la actualización. Establecer una directiva de acceso almacenada en una cola puede tardar hasta 30 segundos en aplicarse. Durante este intervalo, una firma de acceso compartido asociada a la directiva de acceso almacenada producirá una <xref:azure.storage.queue.HttpResponseError> excepción hasta que la directiva de acceso se active. |
set_queue_metadata |
Establece los metadatos definidos por el usuario en la cola especificada. Los metadatos se asocian con la cola como pares nombre-valor. |
update_message |
Novedades el tiempo de espera de visibilidad de un mensaje. También puede utilizar esta operación para actualizar el contenido de un mensaje. Esta operación se puede usar para ampliar continuamente la invisibilidad de un mensaje de cola. Esta funcionalidad puede ser útil si desea que un rol de trabajo "conste" un mensaje de cola. Por ejemplo, si un rol de trabajo llama receive_messages a y reconoce que necesita más tiempo para procesar un mensaje, puede extender continuamente la invisibilidad del mensaje hasta que se procese. Si el rol de trabajo produjera un error durante el procesamiento, el mensaje volvería a estar visible y otro rol de trabajo podría procesarlo. Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo. |
clear_messages
Elimina todos los mensajes de la cola especificada.
clear_messages(**kwargs: Any) -> None
Parámetros
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Ejemplos
Borra todos los mensajes.
queue.clear_messages()
close
Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos.
close()
create_queue
Crea una nueva cola en la cuenta de almacenamiento.
Si ya existe una cola con el mismo nombre, se produce un error en la operación con resourceExistsError.
create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None
Parámetros
Un dict que contiene pares nombre-valor que se van a asociar a la cola como metadatos. Tenga en cuenta que los nombres de los metadatos conservan las mayúsculas y minúsculas iniciales, pero no distinguen entre mayúsculas y minúsculas cuando se establecen o se leen.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Ninguno o el resultado de cls(response)
Tipo de valor devuelto
Excepciones
Ejemplos
Cree una cola.
queue.create_queue()
delete_message
Elimina el mensaje especificado.
Normalmente, después de que un cliente recupere un mensaje con la operación de recepción de mensajes, se espera que el cliente procese y elimine el mensaje. Para eliminar el mensaje, debe tener el propio objeto message o dos elementos de datos: id y pop_receipt. El identificador se devuelve de la operación de receive_messages anterior. El pop_receipt se devuelve de la operación o update_message más recientereceive_messages. Para que la operación de delete_message se realice correctamente, el pop_receipt especificado en la solicitud debe coincidir con el pop_receipt devuelto de la receive_messages operación o update_message .
delete_message(message: str | QueueMessage, pop_receipt: str | None = None, **kwargs: Any) -> None
Parámetros
- message
- str o QueueMessage
Objeto de mensaje o identificador que identifica el mensaje que se va a eliminar.
- pop_receipt
- str
Valor de recibo pop válido devuelto de una llamada anterior a receive_messages o update_message.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Ejemplos
Elimine un mensaje.
# Get the message at the front of the queue
msg = next(queue.receive_messages())
# Delete the specified message
queue.delete_message(msg)
delete_queue
Elimina la cola especificada y los mensajes que contiene.
Cuando una cola se elimina correctamente, se marca inmediatamente para su eliminación y ya no es accesible para los clientes. La cola se quita más tarde del servicio Cola, durante la recolección de elementos no utilizados.
Tenga en cuenta que es probable que la eliminación de una cola tarde al menos 40 segundos en completarse. Si se intenta realizar una operación en la cola mientras se estaba eliminando, se producirá una <xref:azure.storage.queue.HttpResponseError> excepción .
delete_queue(**kwargs: Any) -> None
Parámetros
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Tipo de valor devuelto
Ejemplos
Elimine una cola.
queue.delete_queue()
from_connection_string
Cree QueueClient a partir de una cadena de conexión.
from_connection_string(conn_str: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
Parámetros
- credential
Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS o el cadena de conexión ya tiene valores de clave de acceso compartido. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Las credenciales proporcionadas aquí tendrán prioridad sobre las de la cadena de conexión. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.
- audience
- str
Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.
Devoluciones
Un cliente de cola.
Tipo de valor devuelto
Ejemplos
Cree el cliente de cola a partir de cadena de conexión.
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")
from_queue_url
Un cliente para interactuar con una cola específica.
from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
Parámetros
- credential
Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Si el URI del recurso ya contiene un token de SAS, se omitirá en favor de una credencial explícita.
- excepto en el caso de AzureSasCredential, donde los tokens de SAS en conflicto generarán un valor ValueError. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.
- audience
- str
Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.
Devoluciones
Un cliente de cola.
Tipo de valor devuelto
get_queue_access_policy
Devuelve detalles sobre las directivas de acceso almacenadas especificadas en la cola que se pueden usar con firmas de acceso compartido.
get_queue_access_policy(**kwargs: Any) -> Dict[str, AccessPolicy]
Parámetros
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Diccionario de directivas de acceso asociadas a la cola.
Tipo de valor devuelto
get_queue_properties
Devuelve todos los metadatos definidos por el usuario para la cola especificada.
Los datos devueltos no incluyen la lista de mensajes de la cola.
get_queue_properties(**kwargs: Any) -> QueueProperties
Parámetros
- timeout
- int
El parámetro de tiempo de espera se expresa en segundos.
Devoluciones
Metadatos definidos por el usuario para la cola.
Tipo de valor devuelto
Ejemplos
Obtenga las propiedades de la cola.
properties = queue.get_queue_properties().metadata
peek_messages
Recupera uno o varios mensajes desde la parte delantera de la cola, pero no modifica la visibilidad del mensaje.
Solo se pueden recuperar los mensajes visibles. Cuando se recupera un mensaje por primera vez con una llamada a receive_messages, su propiedad dequeue_count se establece en 1. Si no se elimina y se recupera posteriormente de nuevo, se incrementa la propiedad dequeue_count. El cliente puede utilizar este valor para determinar cuántas veces se ha recuperado un mensaje. Tenga en cuenta que una llamada a peek_messages no incrementa el valor de dequeue_count, pero devuelve este valor para que el cliente lea.
Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.
peek_messages(max_messages: int | None = None, **kwargs: Any) -> List[QueueMessage]
Parámetros
- max_messages
- int
Valor entero distinto de cero que especifica el número de mensajes que se deben obtener de la cola, hasta un máximo de 32. De forma predeterminada, con esta operación se obtiene un solo mensaje de la cola.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Una lista de objetos QueueMessage. Tenga en cuenta que next_visible_on y pop_receipt no se rellenarán porque peek no extrae el mensaje y solo puede recuperar mensajes ya visibles.
Tipo de valor devuelto
Ejemplos
Vistazo mensajes.
# Peek at one message at the front of the queue
msg = queue.peek_messages()
# Peek at the last 5 messages
messages = queue.peek_messages(max_messages=5)
# Print the last 5 messages
for message in messages:
print(message.content)
receive_message
Quita un mensaje de la parte delantera de la cola.
Cuando el mensaje se recupera de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout.
Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, el mensaje se descifrará antes de devolverse.
receive_message(*, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage | None
Parámetros
- visibility_timeout
- int
Si no se especifica, el valor predeterminado es 30. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 1 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Devuelve un mensaje de la cola o Ninguno si la cola está vacía.
Tipo de valor devuelto
Ejemplos
Reciba un mensaje de la cola.
# Pop two messages from the front of the queue
message1 = queue.receive_message()
message2 = queue.receive_message()
# We should see message 3 if we peek
message3 = queue.peek_messages()[0]
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.content)
receive_messages
Quita uno o varios mensajes de la parte delantera de la cola.
Cuando se recupera un mensaje de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout. El iterador capturará continuamente los mensajes hasta que la cola esté vacía o max_messages se alcance (si se establece max_messages).
Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.
receive_messages(*, messages_per_page: int | None = None, visibility_timeout: int | None = None, max_messages: int | None = None, **kwargs: Any) -> ItemPaged[QueueMessage]
Parámetros
- visibility_timeout
- int
Si no se especifica, el valor predeterminado es 30. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 1 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.
- max_messages
- int
Entero que especifica el número máximo de mensajes que se van a recuperar de la cola.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Devuelve un iterador de mensajes de objetos Message similares a dict.
Tipo de valor devuelto
Ejemplos
Recibir mensajes de la cola.
# Receive messages one-by-one
messages = queue.receive_messages()
for msg in messages:
print(msg.content)
# Receive messages by batch
messages = queue.receive_messages(messages_per_page=5)
for msg_batch in messages.by_page():
for msg in msg_batch:
print(msg.content)
queue.delete_message(msg)
send_message
Agrega un nuevo mensaje a la parte posterior de la cola de mensajes.
El tiempo de espera de visibilidad especifica la hora en que el mensaje será invisible. Una vez agotado el tiempo de espera, el mensaje se hará visible. Si no se especifica un tiempo de espera de visibilidad, se utiliza el valor predeterminado 0.
El período de vida del mensaje especifica cuánto tiempo permanecerá un mensaje en la cola. El mensaje se eliminará de la cola cuando caduque el período de vida.
Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.
send_message(content: object | None, *, visibility_timeout: int | None = None, time_to_live: int | None = None, **kwargs: Any) -> QueueMessage
Parámetros
Contenido del mensaje. El tipo permitido viene determinado por el encode_function establecido en el servicio. El valor predeterminado es str. El mensaje codificado puede tener un tamaño de hasta 64 KB.
- visibility_timeout
- int
Si no se especifica ningún valor, se utiliza el valor predeterminado 0. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 0 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.
- time_to_live
- int
Especifica el intervalo del período de vida para el mensaje, en segundos. El período de vida puede ser cualquier número positivo o -1 para infinito. Si se omite este parámetro, el período de vida predeterminado es de 7 días.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Un objeto QueueMessage. Este objeto también se rellena con el contenido, aunque no se devuelve del servicio.
Tipo de valor devuelto
Ejemplos
Enviar mensajes.
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
Establece directivas de acceso almacenadas para la cola que se pueden utilizar con firmas de acceso compartido.
Al establecer los permisos para una cola, los permisos existentes se reemplazan. Para actualizar los permisos de la cola, llame get_queue_access_policy a para capturar todas las directivas de acceso asociadas a la cola, modifique la directiva de acceso que desea cambiar y, a continuación, llame a esta función con el conjunto completo de datos para realizar la actualización.
Establecer una directiva de acceso almacenada en una cola puede tardar hasta 30 segundos en aplicarse. Durante este intervalo, una firma de acceso compartido asociada a la directiva de acceso almacenada producirá una <xref:azure.storage.queue.HttpResponseError> excepción hasta que la directiva de acceso se active.
set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None
Parámetros
- signed_identifiers
- Dict[str, AccessPolicy]
Directivas de acceso SignedIdentifier que se asociarán a la cola. Esto puede contener hasta 5 elementos. Un dict vacío borrará las directivas de acceso establecidas en el servicio.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.
Ejemplos
Establezca una directiva de acceso en la cola.
# 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
queue.set_queue_access_policy(identifiers)
set_queue_metadata
Establece los metadatos definidos por el usuario en la cola especificada.
Los metadatos se asocian con la cola como pares nombre-valor.
set_queue_metadata(metadata: Dict[str, str] | None = None, **kwargs: Any) -> Dict[str, Any]
Parámetros
Un dict que contiene pares nombre-valor que se van a asociar a la cola como metadatos.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Diccionario de encabezados de respuesta.
Tipo de valor devuelto
Ejemplos
Establezca metadatos en la cola.
metadata = {'foo': 'val1', 'bar': 'val2', 'baz': 'val3'}
queue.set_queue_metadata(metadata=metadata)
update_message
Novedades el tiempo de espera de visibilidad de un mensaje. También puede utilizar esta operación para actualizar el contenido de un mensaje.
Esta operación se puede usar para ampliar continuamente la invisibilidad de un mensaje de cola. Esta funcionalidad puede ser útil si desea que un rol de trabajo "conste" un mensaje de cola. Por ejemplo, si un rol de trabajo llama receive_messages a y reconoce que necesita más tiempo para procesar un mensaje, puede extender continuamente la invisibilidad del mensaje hasta que se procese. Si el rol de trabajo produjera un error durante el procesamiento, el mensaje volvería a estar visible y otro rol de trabajo podría procesarlo.
Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.
update_message(message: str | QueueMessage, pop_receipt: str | None = None, content: object | None = None, *, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage
Parámetros
- message
- str o QueueMessage
Objeto de mensaje o identificador que identifica el mensaje que se va a actualizar.
- pop_receipt
- str
Valor de recepción de confirmación válido devuelto desde una llamada anterior a la operación receive_messages o update_message.
Contenido del mensaje. El tipo permitido viene determinado por el encode_function establecido en el servicio. El valor predeterminado es str.
- visibility_timeout
- int
Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El nuevo valor debe ser mayor o igual que 0, y no puede ser mayor de 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. Un mensaje se puede actualizar hasta que se ha eliminado o ha expirado. Objeto de mensaje o identificador de mensaje que identifica el mensaje que se va a actualizar.
- timeout
- int
Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.
Devoluciones
Un objeto QueueMessage. Por comodidad, este objeto también se rellena con el contenido, aunque el servicio no lo devuelve.
Tipo de valor devuelto
Ejemplos
Actualice un mensaje.
# Send a message
queue.send_message("update me")
# Receive the message
messages = queue.receive_messages()
# Update the message
list_result = next(messages)
message = queue.update_message(
list_result.id,
pop_receipt=list_result.pop_receipt,
visibility_timeout=0,
content="updated")
Atributos
api_version
location_mode
Modo de ubicación que el cliente está usando actualmente.
De forma predeterminada, será "principal". Entre las opciones se incluyen "primary" y "secondary".
Tipo de valor devuelto
primary_endpoint
primary_hostname
secondary_endpoint
Dirección URL completa del punto de conexión secundario si está configurada.
Si no está disponible, se generará un valor ValueError. Para especificar explícitamente un nombre de host secundario, use el argumento opcional secondary_hostname palabra clave en la creación de instancias.
Tipo de valor devuelto
Excepciones
secondary_hostname
El nombre de host del punto de conexión secundario.
Si no está disponible, será Ninguno. Para especificar explícitamente un nombre de host secundario, use el argumento opcional secondary_hostname palabra clave en la creación de instancias.
Tipo de valor devuelto
url
Dirección URL completa del punto de conexión a esta entidad, incluido el token de SAS si se usa.
Puede ser el punto de conexión principal o el punto de conexión secundario en función del actual location_mode. :returns: la dirección URL completa del punto de conexión a esta entidad, incluido el token de SAS si se usa. :rtype: str
Azure SDK for Python