Partilhar via


QueueClient Classe

Um cliente para interagir com uma Fila específica.

Herança
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixin
QueueClient
azure.storage.queue._shared.base_client.StorageAccountHostsMixin
QueueClient
azure.storage.queue._encryption.StorageEncryptionMixin
QueueClient

Construtor

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

Parâmetros

account_url
str
Necessário

O URL para a conta de armazenamento. Para criar um cliente com o URI completo na fila, utilize o from_queue_url classmethod.

queue_name
str
Necessário

O nome da fila.

credential
valor predefinido: None

As credenciais com as quais se autenticar. Isto é opcional se o URL da conta já tiver um token de SAS. O valor pode ser uma cadeia de token de SAS, uma instância de uma AzureSasCredential ou AzureNamedKeyCredential a partir de azure.core.credentials, uma chave de acesso partilhada de conta ou uma instância de uma classe TokenCredentials a partir de azure.identity. Se o URI do recurso já contiver um token de SAS, este será ignorado a favor de uma credencial explícita

  • exceto no caso do AzureSasCredential, em que os tokens SAS em conflito gerarão um ValueError. Se utilizar uma instância do AzureNamedKeyCredential, "name" deve ser o nome da conta de armazenamento e "chave" deve ser a chave da conta de armazenamento.
api_version
str

A versão da API de Armazenamento a utilizar para pedidos. O valor predefinido é a versão de serviço mais recente compatível com o SDK atual. Definir para uma versão mais antiga pode resultar numa compatibilidade de funcionalidades reduzida.

secondary_hostname
str

O nome do anfitrião do ponto final secundário.

message_encode_policy

A política de codificação a utilizar nas mensagens enviadas. A predefinição não é codificar mensagens. Outras opções incluem <xref:azure.storage.queue.aio.TextBase64EncodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64EncodePolicy> ou Nenhum.

message_decode_policy

A política de descodificação a utilizar nas mensagens recebidas. O valor predefinido não é para descodificar mensagens. Outras opções incluem <xref:azure.storage.queue.aio.TextBase64DecodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64DecodePolicy> ou Nenhum.

audience
str

A audiência a utilizar ao pedir tokens para autenticação do Azure Active Directory. Só tem um efeito quando a credencial é do tipo TokenCredential. O valor pode ser https://storage.azure.com/ (predefinição) ou https://.queue.core.windows.net.

Exemplos

Crie o cliente de fila com url e credencial.


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

Crie o cliente de fila com um cadeia de ligação.


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

Métodos

clear_messages

Elimina todas as mensagens da fila especificada.

close

Este método consiste em fechar os sockets abertos pelo cliente. Não é necessário utilizá-lo ao utilizar com um gestor de contexto.

create_queue

Cria uma nova fila na conta de armazenamento.

Se já existir uma fila com o mesmo nome, a operação falhará com um ResourceExistsError.

delete_message

Elimina a mensagem especificada.

Normalmente, depois de um cliente obter uma mensagem com a operação receber mensagens, espera-se que o cliente processe e elimine a mensagem. Para eliminar a mensagem, tem de ter o próprio objeto de mensagem ou dois itens de dados: ID e pop_receipt. O ID é devolvido da operação de receive_messages anterior. O pop_receipt é devolvido da operação ou update_message mais recentereceive_messages. Para que a operação de delete_message seja bem-sucedida, o pop_receipt especificado no pedido tem de corresponder ao pop_receipt devolvido da receive_messages operação ou update_message .

delete_queue

Elimina a fila especificada e todas as mensagens que contém.

Quando uma fila é eliminada com êxito, esta é imediatamente marcada para eliminação e já não está acessível aos clientes. A fila é posteriormente removida do serviço Fila durante a recolha de lixo.

Tenha em atenção que a eliminação de uma fila poderá demorar, pelo menos, 40 segundos a concluir. Se for tentada uma operação contra a fila enquanto esta estava a ser eliminada, será lançada uma <xref:azure.storage.queue.aio.HttpResponseError> .

from_connection_string

Criar QueueClient a partir de uma Cadeia de Ligação.

from_queue_url

Um cliente para interagir com uma Fila específica.

get_queue_access_policy

Devolve detalhes sobre quaisquer políticas de acesso armazenadas especificadas na fila que possam ser utilizadas com Assinaturas de Acesso Partilhado.

get_queue_properties

Devolve todos os metadados definidos pelo utilizador para a fila especificada.

Os dados devolvidos não incluem a lista de mensagens da fila.

peek_messages

Obtém uma ou mais mensagens da frente da fila, mas não altera a visibilidade da mensagem.

Apenas as mensagens visíveis podem ser obtidas. Quando uma mensagem é obtida pela primeira vez com uma chamada para , a receive_messagespropriedade dequeue_count está definida como 1. Se não for eliminado e for obtido novamente, a propriedade dequeue_count é incrementada. O cliente pode utilizar este valor para determinar quantas vezes uma mensagem foi obtida. Tenha em atenção que uma chamada para peek_messages não incrementa o valor de dequeue_count, mas devolve este valor para o cliente ler.

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, as mensagens serão desencriptadas antes de serem devolvidas.

receive_message

Remove uma mensagem da frente da fila.

Quando a mensagem é obtida da fila, a resposta inclui o conteúdo da mensagem e um valor de pop_receipt, que é necessário para eliminar a mensagem. A mensagem não é eliminada automaticamente da fila, mas depois de ser obtida, não é visível para outros clientes para o intervalo de tempo especificado pelo parâmetro visibility_timeout.

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, a mensagem será desencriptada antes de ser devolvida.

receive_messages

Remove uma ou mais mensagens da frente da fila.

Quando uma mensagem é obtida da fila, a resposta inclui o conteúdo da mensagem e um valor de pop_receipt, que é necessário para eliminar a mensagem. A mensagem não é eliminada automaticamente da fila, mas depois de ser obtida, não é visível para outros clientes para o intervalo de tempo especificado pelo parâmetro visibility_timeout. O iterador irá obter continuamente mensagens até que a fila esteja vazia ou max_messages seja atingido (se max_messages estiver definida).

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, as mensagens serão desencriptadas antes de serem devolvidas.

send_message

Adiciona uma nova mensagem à parte de trás da fila de mensagens.

O tempo limite de visibilidade especifica a hora em que a mensagem será invisível. Quando o tempo limite expirar, a mensagem ficará visível. Se não for especificado um tempo limite de visibilidade, é utilizado o valor predefinido de 0.

A mensagem time-to-live especifica quanto tempo uma mensagem permanecerá na fila. A mensagem será eliminada da fila quando o período de tempo de vida expirar.

Se o campo key-encryption-key estiver definido no objeto de serviço local, este método encriptará o conteúdo antes de carregar.

set_queue_access_policy

Define políticas de acesso armazenadas para a fila que podem ser utilizadas com Assinaturas de Acesso Partilhado.

Quando define permissões para uma fila, as permissões existentes são substituídas. Para atualizar as permissões da fila, chame get_queue_access_policy para obter todas as políticas de acesso associadas à fila, modifique a política de acesso que pretende alterar e, em seguida, chame esta função com o conjunto completo de dados para efetuar a atualização.

Quando estabelece uma política de acesso armazenada numa fila, pode demorar até 30 segundos a entrar em vigor. Durante este intervalo, uma assinatura de acesso partilhado associada à política de acesso armazenada emitirá uma <xref:azure.storage.queue.aio.HttpResponseError> até a política de acesso ficar ativa.

set_queue_metadata

Define os metadados definidos pelo utilizador na fila especificada.

Os metadados estão associados à fila como pares nome-valor.

update_message

Atualizações o tempo limite de visibilidade de uma mensagem. Também pode utilizar esta operação para atualizar o conteúdo de uma mensagem.

Esta operação pode ser utilizada para expandir continuamente a invisibilidade de uma mensagem de fila. Esta funcionalidade pode ser útil se quiser que uma função de trabalho "arrenda" uma mensagem de fila. Por exemplo, se uma função de trabalho chamar receive_messages e reconhecer que precisa de mais tempo para processar uma mensagem, pode prolongar continuamente a invisibilidade da mensagem até ser processada. Se a função de trabalho falhasse durante o processamento, eventualmente a mensagem tornar-se-ia novamente visível e outra função de trabalho poderia processá-la.

Se o campo key-encryption-key estiver definido no objeto de serviço local, este método encriptará o conteúdo antes de carregar.

clear_messages

Elimina todas as mensagens da fila especificada.

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

Parâmetros

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é monitorizado nem validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Exemplos

Limpa todas as mensagens.


   await queue.clear_messages()

close

Este método consiste em fechar os sockets abertos pelo cliente. Não é necessário utilizá-lo ao utilizar com um gestor de contexto.

async close()

create_queue

Cria uma nova fila na conta de armazenamento.

Se já existir uma fila com o mesmo nome, a operação falhará com um ResourceExistsError.

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

Parâmetros

metadata
dict(str,str)

Um ditado que contém pares nome-valor para associar à fila como metadados. Tenha em atenção que os nomes de metadados preservam o caso com o qual foram criados, mas não são sensíveis a maiúsculas e minúsculas quando definidos ou lidos.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é monitorizado nem validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Nenhum ou o resultado de cls(resposta)

Tipo de retorno

Exceções

StorageErrorException

Exemplos

Criar uma fila.


   await queue.create_queue()

delete_message

Elimina a mensagem especificada.

Normalmente, depois de um cliente obter uma mensagem com a operação receber mensagens, espera-se que o cliente processe e elimine a mensagem. Para eliminar a mensagem, tem de ter o próprio objeto de mensagem ou dois itens de dados: ID e pop_receipt. O ID é devolvido da operação de receive_messages anterior. O pop_receipt é devolvido da operação ou update_message mais recentereceive_messages. Para que a operação de delete_message seja bem-sucedida, o pop_receipt especificado no pedido tem de corresponder ao pop_receipt devolvido da receive_messages operação ou update_message .

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

Parâmetros

message
str ou QueueMessage
Necessário

O objeto de mensagem ou id que identifica a mensagem a eliminar.

pop_receipt
str
Necessário

Um valor de recibo pop válido devolvido de uma chamada anterior para o receive_messages ou update_message.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é monitorizado nem validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Exemplos

Eliminar uma mensagem.


   # 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

Elimina a fila especificada e todas as mensagens que contém.

Quando uma fila é eliminada com êxito, esta é imediatamente marcada para eliminação e já não está acessível aos clientes. A fila é posteriormente removida do serviço Fila durante a recolha de lixo.

Tenha em atenção que a eliminação de uma fila poderá demorar, pelo menos, 40 segundos a concluir. Se for tentada uma operação contra a fila enquanto esta estava a ser eliminada, será lançada uma <xref:azure.storage.queue.aio.HttpResponseError> .

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

Parâmetros

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é monitorizado nem validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Tipo de retorno

Exemplos

Eliminar uma fila.


   await queue.delete_queue()

from_connection_string

Criar QueueClient a partir de uma Cadeia de Ligação.

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

Parâmetros

conn_str
str
Necessário

Uma cadeia de ligação para uma conta de Armazenamento do Azure.

queue_name
str
Necessário

O nome da fila.

credential
valor predefinido: None

As credenciais com as quais se autenticar. Isto é opcional se o URL da conta já tiver um token de SAS ou o cadeia de ligação já tiver valores de chave de acesso partilhados. O valor pode ser uma cadeia de token de SAS, uma instância de uma AzureSasCredential ou AzureNamedKeyCredential a partir de azure.core.credentials, uma chave de acesso partilhada de conta ou uma instância de uma classe TokenCredentials a partir de azure.identity. As credenciais aqui fornecidas terão precedência sobre as das cadeia de ligação. Se utilizar uma instância do AzureNamedKeyCredential, "name" deve ser o nome da conta de armazenamento e "chave" deve ser a chave da conta de armazenamento.

audience
str

A audiência a utilizar ao pedir tokens para autenticação do Azure Active Directory. Só tem um efeito quando a credencial é do tipo TokenCredential. O valor pode ser https://storage.azure.com/ (predefinição) ou https://.queue.core.windows.net.

Devoluções

Um cliente de fila.

Tipo de retorno

Exemplos

Crie o cliente de fila a partir de cadeia de ligação.


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

from_queue_url

Um cliente para interagir com uma Fila específica.

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

Parâmetros

queue_url
str
Necessário

O URI completo para a fila, incluindo o token de SAS, se utilizado.

credential
valor predefinido: None

As credenciais com as quais se autenticar. Isto é opcional se o URL da conta já tiver um token de SAS. O valor pode ser uma cadeia de token de SAS, uma instância de uma AzureSasCredential ou AzureNamedKeyCredential a partir de azure.core.credentials, uma chave de acesso partilhada de conta ou uma instância de uma classe TokenCredentials a partir de azure.identity. Se o URI do recurso já contiver um token de SAS, este será ignorado a favor de uma credencial explícita

  • exceto no caso do AzureSasCredential, em que os tokens SAS em conflito gerarão um ValueError. Se utilizar uma instância do AzureNamedKeyCredential, "name" deve ser o nome da conta de armazenamento e "chave" deve ser a chave da conta de armazenamento.
audience
str

A audiência a utilizar ao pedir tokens para autenticação do Azure Active Directory. Só tem um efeito quando a credencial é do tipo TokenCredential. O valor pode ser https://storage.azure.com/ (predefinição) ou https://.queue.core.windows.net.

Devoluções

Um cliente de fila.

Tipo de retorno

get_queue_access_policy

Devolve detalhes sobre quaisquer políticas de acesso armazenadas especificadas na fila que possam ser utilizadas com Assinaturas de Acesso Partilhado.

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

Parâmetros

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Um dicionário de políticas de acesso associadas à fila.

Tipo de retorno

get_queue_properties

Devolve todos os metadados definidos pelo utilizador para a fila especificada.

Os dados devolvidos não incluem a lista de mensagens da fila.

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

Parâmetros

timeout
int

O parâmetro de tempo limite é expresso em segundos.

Devoluções

Metadados definidos pelo utilizador para a fila.

Tipo de retorno

Exemplos

Obtenha as propriedades na fila.


   properties = await queue.get_queue_properties()

peek_messages

Obtém uma ou mais mensagens da frente da fila, mas não altera a visibilidade da mensagem.

Apenas as mensagens visíveis podem ser obtidas. Quando uma mensagem é obtida pela primeira vez com uma chamada para , a receive_messagespropriedade dequeue_count está definida como 1. Se não for eliminado e for obtido novamente, a propriedade dequeue_count é incrementada. O cliente pode utilizar este valor para determinar quantas vezes uma mensagem foi obtida. Tenha em atenção que uma chamada para peek_messages não incrementa o valor de dequeue_count, mas devolve este valor para o cliente ler.

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, as mensagens serão desencriptadas antes de serem devolvidas.

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

Parâmetros

max_messages
int
Necessário

Um valor inteiro diferente de zero que especifica o número de mensagens a espreitar da fila, até um máximo de 32. Por predefinição, é pré-visualizada uma única mensagem da fila com esta operação.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Uma lista de QueueMessage objetos. Tenha em atenção que next_visible_on e pop_receipt não serão preenchidos, uma vez que a pré-visualização não apresenta a mensagem e só pode obter mensagens já visíveis.

Tipo de retorno

Exemplos

Pré-visualizar mensagens.


   # 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

Remove uma mensagem da frente da fila.

Quando a mensagem é obtida da fila, a resposta inclui o conteúdo da mensagem e um valor de pop_receipt, que é necessário para eliminar a mensagem. A mensagem não é eliminada automaticamente da fila, mas depois de ser obtida, não é visível para outros clientes para o intervalo de tempo especificado pelo parâmetro visibility_timeout.

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, a mensagem será desencriptada antes de ser devolvida.

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

Parâmetros

visibility_timeout
int

Se não for especificado, o valor predefinido é 30. Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação ao tempo do servidor. O valor tem de ser maior ou igual a 1 e não pode ser superior a 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido para um valor posterior ao tempo de expiração. visibility_timeout deve ser definido para um valor inferior ao valor time-to-live.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Devolve uma mensagem da Fila ou Nenhuma se a Fila estiver vazia.

Tipo de retorno

Exemplos

Receber uma mensagem da fila.


       # 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

Remove uma ou mais mensagens da frente da fila.

Quando uma mensagem é obtida da fila, a resposta inclui o conteúdo da mensagem e um valor de pop_receipt, que é necessário para eliminar a mensagem. A mensagem não é eliminada automaticamente da fila, mas depois de ser obtida, não é visível para outros clientes para o intervalo de tempo especificado pelo parâmetro visibility_timeout. O iterador irá obter continuamente mensagens até que a fila esteja vazia ou max_messages seja atingido (se max_messages estiver definida).

Se o campo key-encryption-key ou resolver estiver definido no objeto de serviço local, as mensagens serão desencriptadas antes de serem devolvidas.

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

Parâmetros

messages_per_page
int

Um valor inteiro diferente de zero que especifica o número de mensagens a obter da fila, até um máximo de 32. Se menos estiverem visíveis, as mensagens visíveis são devolvidas. Por predefinição, é obtida uma única mensagem da fila com esta operação. by_page() pode ser utilizado para fornecer um iterador de páginas no AsyncItemPaged se messages_per_page estiver definido. next() pode ser utilizado para obter a página seguinte.

visibility_timeout
int

Se não for especificado, o valor predefinido é 30. Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação ao tempo do servidor. O valor tem de ser maior ou igual a 1 e não pode ser superior a 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido para um valor posterior ao tempo de expiração. visibility_timeout deve ser definido para um valor inferior ao valor time-to-live.

max_messages
int

Um número inteiro que especifica o número máximo de mensagens a obter da fila.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Devolve um iterador de mensagens de objetos de Mensagem semelhantes a dict.

Tipo de retorno

Exemplos

Receber mensagens da fila.


   # 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

Adiciona uma nova mensagem à parte de trás da fila de mensagens.

O tempo limite de visibilidade especifica a hora em que a mensagem será invisível. Quando o tempo limite expirar, a mensagem ficará visível. Se não for especificado um tempo limite de visibilidade, é utilizado o valor predefinido de 0.

A mensagem time-to-live especifica quanto tempo uma mensagem permanecerá na fila. A mensagem será eliminada da fila quando o período de tempo de vida expirar.

Se o campo key-encryption-key estiver definido no objeto de serviço local, este método encriptará o conteúdo antes de carregar.

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

Parâmetros

content
Optional[object]
Necessário

Conteúdo da mensagem. O tipo permitido é determinado pelo encode_function definido no serviço. A predefinição é str. A mensagem codificada pode ter até 64 KB de tamanho.

visibility_timeout
int

Se não for especificado, o valor predefinido é 0. Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação ao tempo do servidor. O valor tem de ser maior ou igual a 0 e não pode ser superior a 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido para um valor posterior ao tempo de expiração. visibility_timeout deve ser definido para um valor inferior ao valor time-to-live.

time_to_live
int

Especifica o intervalo de tempo de vida para a mensagem, em segundos. O time-to-live pode ser qualquer número positivo ou -1 para o infinito. Se este parâmetro for omitido, o time-to-live predefinido é de 7 dias.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Um QueueMessage objeto. Este objeto também é preenchido com o conteúdo, embora não seja devolvido pelo serviço.

Tipo de retorno

Exemplos

Enviar mensagens.


   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

Define políticas de acesso armazenadas para a fila que podem ser utilizadas com Assinaturas de Acesso Partilhado.

Quando define permissões para uma fila, as permissões existentes são substituídas. Para atualizar as permissões da fila, chame get_queue_access_policy para obter todas as políticas de acesso associadas à fila, modifique a política de acesso que pretende alterar e, em seguida, chame esta função com o conjunto completo de dados para efetuar a atualização.

Quando estabelece uma política de acesso armazenada numa fila, pode demorar até 30 segundos a entrar em vigor. Durante este intervalo, uma assinatura de acesso partilhado associada à política de acesso armazenada emitirá uma <xref:azure.storage.queue.aio.HttpResponseError> até a política de acesso ficar ativa.

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

Parâmetros

signed_identifiers
Dict[str, AccessPolicy]
Necessário

Políticas de acesso SignedIdentifier para associar à fila. Isto pode conter até 5 elementos. Um ditado vazio limpará as políticas de acesso definidas no serviço.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Exemplos

Defina uma política de acesso na fila.


   # 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

Define os metadados definidos pelo utilizador na fila especificada.

Os metadados estão associados à fila como pares nome-valor.

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

Parâmetros

metadata
Optional[Dict[str, Any]]
Necessário

Um ditado que contém pares nome-valor para associar à fila como metadados.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Um dicionário de cabeçalhos de resposta.

Tipo de retorno

Exemplos

Definir metadados na fila.


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

update_message

Atualizações o tempo limite de visibilidade de uma mensagem. Também pode utilizar esta operação para atualizar o conteúdo de uma mensagem.

Esta operação pode ser utilizada para expandir continuamente a invisibilidade de uma mensagem de fila. Esta funcionalidade pode ser útil se quiser que uma função de trabalho "arrenda" uma mensagem de fila. Por exemplo, se uma função de trabalho chamar receive_messages e reconhecer que precisa de mais tempo para processar uma mensagem, pode prolongar continuamente a invisibilidade da mensagem até ser processada. Se a função de trabalho falhasse durante o processamento, eventualmente a mensagem tornar-se-ia novamente visível e outra função de trabalho poderia processá-la.

Se o campo key-encryption-key estiver definido no objeto de serviço local, este método encriptará o conteúdo antes de carregar.

async 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 ou QueueMessage
Necessário

O objeto ou ID da mensagem que identifica a mensagem a atualizar.

pop_receipt
str
Necessário

Um valor de recibo pop válido devolvido de uma chamada anterior para a receive_messages operação ou update_message .

content
Optional[object]
Necessário

Conteúdo da mensagem. O tipo permitido é determinado pelo encode_function definido no serviço. A predefinição é str.

visibility_timeout
int

Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação ao tempo do servidor. O novo valor tem de ser maior ou igual a 0 e não pode ser superior a 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido para um valor posterior ao tempo de expiração. Uma mensagem pode ser atualizada até ter sido eliminada ou ter expirado. O ID da mensagem ou o ID da mensagem que identifica a mensagem a atualizar.

timeout
int

Define o tempo limite do lado do servidor para a operação em segundos. Para obter mais detalhes, veja https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor não é controlado ou validado no cliente. Para configurar tempos limite de rede do lado do cliente, veja aqui.

Devoluções

Um QueueMessage objeto. Para sua comodidade, este objeto também é preenchido com o conteúdo, embora não seja devolvido pelo serviço.

Tipo de retorno

Exemplos

Atualizar uma mensagem.


   # 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")

Atributos

api_version

A versão da API de Armazenamento utilizada para pedidos.

Tipo de retorno

str

location_mode

O modo de localização que o cliente está a utilizar atualmente.

Por predefinição, será "primário". As opções incluem "principal" e "secundário".

Tipo de retorno

str

primary_endpoint

O URL do ponto final primário completo.

Tipo de retorno

str

primary_hostname

O nome do anfitrião do ponto final primário.

Tipo de retorno

str

secondary_endpoint

O URL completo do ponto final secundário, se configurado.

Se não estiver disponível, será gerado um ValueError. Para especificar explicitamente um nome de anfitrião secundário, utilize o argumento opcional secondary_hostname palavra-chave na instanciação.

Tipo de retorno

str

Exceções

secondary_hostname

O nome do anfitrião do ponto final secundário.

Se não estiver disponível, este será Nenhum. Para especificar explicitamente um nome de anfitrião secundário, utilize o argumento opcional secondary_hostname palavra-chave na instanciação.

Tipo de retorno

url

O URL de ponto final completo para esta entidade, incluindo o token de SAS, se utilizado.

Este pode ser o ponto final principal ou o ponto final secundário, dependendo do atual location_mode. :returns: o URL de ponto final completo para esta entidade, incluindo o token SAS, se utilizado. :rtype: str