Condividi tramite


QueueClient Classe

Un client per interagire con una coda specifica.

Ereditarietà
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixin
QueueClient
azure.storage.queue._shared.base_client.StorageAccountHostsMixin
QueueClient
azure.storage.queue._encryption.StorageEncryptionMixin
QueueClient

Costruttore

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

Parametri

account_url
str
Necessario

URL dell'account di archiviazione. Per creare un client dato l'URI completo alla coda, usare il from_queue_url metodo classmethod.

queue_name
str
Necessario

Nome della coda.

credential
valore predefinito: None

Credenziali con cui eseguire l'autenticazione. Questa opzione è facoltativa se l'URL dell'account ha già un token di firma di accesso condiviso. Il valore può essere una stringa di token di firma di accesso condiviso, un'istanza di AzureSasCredential o AzureNamedKeyCredential da azure.core.credentials, una chiave di accesso condiviso dell'account o un'istanza di una classe TokenCredentials da azure.identity. Se l'URI della risorsa contiene già un token di firma di accesso condiviso, verrà ignorato a favore di una credenziale esplicita

  • tranne nel caso di AzureSasCredential, in cui i token di firma di accesso condiviso in conflitto genereranno un ValoreError. Se si usa un'istanza di AzureNamedKeyCredential, "name" deve essere il nome dell'account di archiviazione e "key" deve essere la chiave dell'account di archiviazione.
api_version
str

Versione dell'API di archiviazione da usare per le richieste. Il valore predefinito è la versione del servizio più recente compatibile con l'SDK corrente. L'impostazione su una versione precedente può comportare una riduzione della compatibilità delle funzionalità.

secondary_hostname
str

Nome host dell'endpoint secondario.

message_encode_policy

Criteri di codifica da usare nei messaggi in uscita. L'impostazione predefinita non consiste nel codificare i messaggi. Altre opzioni includono <xref:azure.storage.queue.aio.TextBase64EncodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64EncodePolicy> o Nessuno.

message_decode_policy

Criterio di decodifica da usare nei messaggi in arrivo. Il valore predefinito non consiste nel decodificare i messaggi. Altre opzioni includono <xref:azure.storage.queue.aio.TextBase64DecodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64DecodePolicy> o Nessuno.

audience
str

Destinatari da usare quando si richiedono token per l'autenticazione di Azure Active Directory. Ha effetto solo quando la credenziale è di tipo TokenCredential. Il valore può essere https://storage.azure.com/ (predefinito) o https://.queue.core.windows.net.

Esempio

Creare il client della coda con URL e credenziali.


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

Creare il client della coda con un stringa di connessione.


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

Metodi

clear_messages

Elimina tutti i messaggi dalla coda specificata.

close

Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usarlo quando si usa con un gestore di contesto.

create_queue

Crea una nuova coda nell'account di archiviazione.

Se esiste già una coda con lo stesso nome, l'operazione ha esito negativo con ResourceExistsError.

delete_message

Elimina il messaggio specificato.

In genere, dopo che un client recupera un messaggio con l'operazione di ricezione dei messaggi, il client deve elaborare ed eliminare il messaggio. Per eliminare il messaggio, è necessario disporre dell'oggetto messaggio stesso o di due elementi di dati: ID e pop_receipt. L'ID viene restituito dall'operazione di receive_messages precedente. Il pop_receipt viene restituito dall'operazione o update_message più recentereceive_messages. Affinché l'operazione di delete_message abbia esito positivo, il pop_receipt specificato nella richiesta deve corrispondere al pop_receipt restituito dall'operazione receive_messages o update_message .

delete_queue

Elimina la coda specificata e tutti i messaggi contenuti.

Quando una coda viene eliminata correttamente, viene immediatamente contrassegnata per l'eliminazione e non è più accessibile ai client. La coda verrà rimossa in seguito dal servizio di accodamento durante un'operazione di Garbage Collection.

Si noti che l'eliminazione di una coda richiede probabilmente almeno 40 secondi. Se si tenta di eseguire un'operazione sulla coda durante l'eliminazione, verrà generata un'eccezione <xref:azure.storage.queue.aio.HttpResponseError> .

from_connection_string

Creare QueueClient da una stringa di connessione.

from_queue_url

Un client da interagire con una coda specifica.

get_queue_access_policy

Restituisce informazioni dettagliate sui criteri di accesso archiviati specificati nella coda che possono essere usati con firme di accesso condiviso.

get_queue_properties

Restituisce tutti i metadati definiti dall'utente per la coda specificata.

I dati restituiti non includono l'elenco dei messaggi della coda.

peek_messages

Recupera uno o più messaggi dalla parte anteriore della coda, ma non modifica la visibilità del messaggio.

È possibile recuperare solo i messaggi visibili. Quando un messaggio viene recuperato per la prima volta con una chiamata a receive_messages, la relativa proprietà dequeue_count è impostata su 1. Se non viene eliminato e viene recuperato di nuovo, la proprietà dequeue_count viene incrementata. Il client può utilizzare questo valore per determinare quante volte è stato recuperato un messaggio. Si noti che una chiamata a peek_messages non incrementa il valore di dequeue_count, ma restituisce questo valore per il client da leggere.

Se il campo key-encryption-key o resolver è impostato sull'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti.

receive_message

Rimuove un messaggio dalla parte anteriore della coda.

Quando il messaggio viene recuperato dalla coda, la risposta include il contenuto del messaggio e un valore pop_receipt, necessario per eliminare il messaggio. Il messaggio non viene eliminato automaticamente dalla coda, ma dopo che è stato recuperato, non è visibile ad altri client per l'intervallo di tempo specificato dal parametro visibility_timeout.

Se il campo key-encryption-key o resolver è impostato sull'oggetto del servizio locale, il messaggio verrà decrittografato prima di essere restituito.

receive_messages

Rimuove uno o più messaggi dalla parte anteriore della coda.

Quando un messaggio viene recuperato dalla coda, la risposta include il contenuto del messaggio e un valore pop_receipt, necessario per eliminare il messaggio. Il messaggio non viene eliminato automaticamente dalla coda, ma dopo che è stato recuperato, non è visibile ad altri client per l'intervallo di tempo specificato dal parametro visibility_timeout. L'iteratore recupera continuamente i messaggi finché la coda non è vuota o max_messages viene raggiunta (se max_messages è impostata).

Se il campo key-encryption-key o resolver è impostato sull'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti.

send_message

Aggiunge un nuovo messaggio alla parte posteriore della coda del messaggio.

Il timeout di visibilità specifica l'ora in cui il messaggio sarà invisibile. Alla scadenza del timeout, il messaggio diventerà visibile. Se non viene specificato alcun timeout di visibilità, viene usato il valore predefinito 0.

Il time-to-live del messaggio specifica la durata di un messaggio nella coda. Il messaggio verrà eliminato dalla coda alla scadenza del periodo TTL.

Se il campo key-encryption-key è impostato sull'oggetto servizio locale, questo metodo crittograferà il contenuto prima del caricamento.

set_queue_access_policy

Imposta i criteri di accesso archiviati per la coda da utilizzare con firme di accesso condiviso.

Quando si impostano le autorizzazioni per una coda, le autorizzazioni esistenti vengono sostituite. Per aggiornare le autorizzazioni della coda, chiamare get_queue_access_policy per recuperare tutti i criteri di accesso associati alla coda, modificare i criteri di accesso da modificare e quindi chiamare questa funzione con il set completo di dati per eseguire l'aggiornamento.

La creazione di un criterio di accesso archiviato in una coda potrebbe richiedere fino a 30 secondi. Durante questo intervallo, una firma di accesso condiviso associata ai criteri di accesso archiviati genererà un'eccezione <xref:azure.storage.queue.aio.HttpResponseError> fino a quando i criteri di accesso non diventano attivi.

set_queue_metadata

Imposta i metadati definiti dall'utente nella coda specificata.

I metadati vengono associati alla coda come coppie nome-valore.

update_message

Aggiornamenti il timeout di visibilità di un messaggio. È anche possibile usare questa operazione per aggiornare il contenuto di un messaggio.

Questa operazione può essere usata per estendere continuamente l'invisibilità di un messaggio della coda. Questa funzionalità può essere utile se si vuole che un ruolo di lavoro "lease" un messaggio della coda. Ad esempio, se un ruolo di lavoro chiama receive_messages e riconosce che richiede più tempo per elaborare un messaggio, può estendere continuamente l'invisibilità del messaggio fino a quando non viene elaborato. Se il ruolo di lavoro restituisse un errore durante l'elaborazione, il messaggio diventerebbe nuovamente visibile e verrebbe elaborato da un altro ruolo di lavoro.

Se il campo key-encryption-key è impostato nell'oggetto servizio locale, questo metodo crittograferà il contenuto prima del caricamento.

clear_messages

Elimina tutti i messaggi dalla coda specificata.

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

Parametri

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Esempio

Cancella tutti i messaggi.


   await queue.clear_messages()

close

Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usarlo quando si usa con un gestore di contesto.

async close()

create_queue

Crea una nuova coda nell'account di archiviazione.

Se esiste già una coda con lo stesso nome, l'operazione ha esito negativo con ResourceExistsError.

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

Parametri

metadata
dict(str,str)

Dict contenente coppie nome-valore da associare alla coda come metadati. Si noti che i nomi dei metadati mantengono la distinzione tra maiuscole e minuscole con cui sono stati creati, ma quando vengono impostati o letti tale distinzione è irrilevante.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Nessuno o il risultato di cls(response)

Tipo restituito

Eccezioni

StorageErrorException

Esempio

Creare una coda.


   await queue.create_queue()

delete_message

Elimina il messaggio specificato.

In genere, dopo che un client recupera un messaggio con l'operazione di ricezione dei messaggi, il client deve elaborare ed eliminare il messaggio. Per eliminare il messaggio, è necessario disporre dell'oggetto messaggio stesso o di due elementi di dati: ID e pop_receipt. L'ID viene restituito dall'operazione di receive_messages precedente. Il pop_receipt viene restituito dall'operazione o update_message più recentereceive_messages. Affinché l'operazione di delete_message abbia esito positivo, il pop_receipt specificato nella richiesta deve corrispondere al pop_receipt restituito dall'operazione receive_messages o update_message .

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

Parametri

message
str oppure QueueMessage
Necessario

Oggetto messaggio o ID che identifica il messaggio da eliminare.

pop_receipt
str
Necessario

Valore di ricevuta pop valido restituito da una chiamata precedente a receive_messages o update_message.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Esempio

Eliminare un messaggio.


   # 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 la coda specificata e tutti i messaggi contenuti.

Quando una coda viene eliminata correttamente, viene immediatamente contrassegnata per l'eliminazione e non è più accessibile ai client. La coda verrà rimossa in seguito dal servizio di accodamento durante un'operazione di Garbage Collection.

Si noti che l'eliminazione di una coda richiede probabilmente almeno 40 secondi. Se si tenta di eseguire un'operazione sulla coda durante l'eliminazione, verrà generata un'eccezione <xref:azure.storage.queue.aio.HttpResponseError> .

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

Parametri

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Tipo restituito

Esempio

Eliminare una coda.


   await queue.delete_queue()

from_connection_string

Creare QueueClient da una stringa di connessione.

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

Parametri

conn_str
str
Necessario

Un stringa di connessione a un account di archiviazione di Azure.

queue_name
str
Necessario

Nome della coda.

credential
valore predefinito: None

Credenziali con cui eseguire l'autenticazione. Questa opzione è facoltativa se l'URL dell'account ha già un token di firma di accesso condiviso o il stringa di connessione ha già valori di chiave di accesso condiviso. Il valore può essere una stringa di token di firma di accesso condiviso, un'istanza di AzureSasCredential o AzureNamedKeyCredential da azure.core.credentials, una chiave di accesso condiviso dell'account o un'istanza di una classe TokenCredentials da azure.identity. Le credenziali fornite qui avranno la precedenza su quelle nel stringa di connessione. Se si usa un'istanza di AzureNamedKeyCredential, "name" deve essere il nome dell'account di archiviazione e "key" deve essere la chiave dell'account di archiviazione.

audience
str

Destinatari da usare quando si richiedono token per l'autenticazione di Azure Active Directory. Ha effetto solo quando la credenziale è di tipo TokenCredential. Il valore può essere https://storage.azure.com/ (predefinito) o https://.queue.core.windows.net.

Restituisce

Un client della coda.

Tipo restituito

Esempio

Creare il client della coda da stringa di connessione.


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

from_queue_url

Un client da interagire con una coda specifica.

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

Parametri

queue_url
str
Necessario

URI completo della coda, incluso il token di firma di accesso condiviso, se usato.

credential
valore predefinito: None

Credenziali con cui eseguire l'autenticazione. Questa opzione è facoltativa se l'URL dell'account ha già un token di firma di accesso condiviso. Il valore può essere una stringa di token di firma di accesso condiviso, un'istanza di AzureSasCredential o AzureNamedKeyCredential da azure.core.credentials, una chiave di accesso condiviso dell'account o un'istanza di una classe TokenCredentials da azure.identity. Se l'URI della risorsa contiene già un token di firma di accesso condiviso, questo verrà ignorato a favore di una credenziale esplicita

  • tranne nel caso di AzureSasCredential, in cui i token sas in conflitto genereranno un valoreError. Se si usa un'istanza di AzureNamedKeyCredential, "name" deve essere il nome dell'account di archiviazione e "key" deve essere la chiave dell'account di archiviazione.
audience
str

Destinatari da usare quando si richiedono token per l'autenticazione di Azure Active Directory. Ha un effetto solo quando le credenziali sono di tipo TokenCredential. Il valore potrebbe essere https://storage.azure.com/ (predefinito) o https://.queue.core.windows.net.

Restituisce

Un client di coda.

Tipo restituito

get_queue_access_policy

Restituisce informazioni dettagliate sui criteri di accesso archiviati specificati nella coda che possono essere usati con firme di accesso condiviso.

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

Parametri

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene monitorato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Dizionario dei criteri di accesso associati alla coda.

Tipo restituito

get_queue_properties

Restituisce tutti i metadati definiti dall'utente per la coda specificata.

I dati restituiti non includono l'elenco dei messaggi della coda.

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

Parametri

timeout
int

Il parametro timeout viene espresso in secondi.

Restituisce

Metadati definiti dall'utente per la coda.

Tipo restituito

Esempio

Ottenere le proprietà nella coda.


   properties = await queue.get_queue_properties()

peek_messages

Recupera uno o più messaggi dalla parte anteriore della coda, ma non modifica la visibilità del messaggio.

È possibile recuperare solo i messaggi visibili. Quando un messaggio viene recuperato per la prima volta con una chiamata a receive_messages, la relativa proprietà dequeue_count è impostata su 1. Se non viene eliminato e viene recuperato di nuovo, la proprietà dequeue_count viene incrementata. Il client può utilizzare questo valore per determinare quante volte è stato recuperato un messaggio. Si noti che una chiamata a peek_messages non incrementa il valore di dequeue_count, ma restituisce questo valore per il client da leggere.

Se il campo key-encryption-key o resolver è impostato sull'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti.

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

Parametri

max_messages
int
Necessario

Valore intero diverso da zero che specifica il numero di messaggi da osservare nella coda, fino a un massimo di 32. Per impostazione predefinita, un singolo messaggio viene osservato dalla coda con questa operazione.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene monitorato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Elenco di oggetti QueueMessage. Si noti che next_visible_on e pop_receipt non verranno popolati come peek non popola il messaggio e può recuperare solo messaggi già visibili.

Tipo restituito

Esempio

Anteprima rapida messaggi.


   # 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

Rimuove un messaggio dalla parte anteriore della coda.

Quando il messaggio viene recuperato dalla coda, la risposta include il contenuto del messaggio e un valore pop_receipt, necessario per eliminare il messaggio. Il messaggio non viene eliminato automaticamente dalla coda, ma dopo che è stato recuperato, non è visibile ad altri client per l'intervallo di tempo specificato dal parametro visibility_timeout.

Se il campo key-encryption-key o resolver è impostato sull'oggetto del servizio locale, il messaggio verrà decrittografato prima di essere restituito.

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

Parametri

visibility_timeout
int

Se non specificato, il valore predefinito è 30. Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Il valore deve essere maggiore o uguale a 1 e non può essere maggiore di 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo all'ora di scadenza. visibility_timeout deve essere impostato su un valore inferiore al valore tempo-to-live.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene monitorato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Restituisce un messaggio dalla coda o none se la coda è vuota.

Tipo restituito

Esempio

Ricevere un messaggio dalla coda.


       # 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

Rimuove uno o più messaggi dalla parte anteriore della coda.

Quando un messaggio viene recuperato dalla coda, la risposta include il contenuto del messaggio e un valore pop_receipt, necessario per eliminare il messaggio. Il messaggio non viene eliminato automaticamente dalla coda, ma dopo che è stato recuperato, non è visibile ad altri client per l'intervallo di tempo specificato dal parametro visibility_timeout. L'iteratore recupera continuamente i messaggi finché la coda non è vuota o max_messages viene raggiunta (se max_messages è impostata).

Se il campo key-encryption-key o resolver è impostato sull'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti.

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

Parametri

messages_per_page
int

Valore intero diverso da zero che specifica il numero di messaggi da recuperare nella coda, fino a un massimo di 32. Verranno restituiti i messaggi visibili. Per impostazione predefinita, un singolo messaggio viene recuperato dalla coda con questa operazione. by_page() può essere usato per fornire un iteratore di pagina nell'oggetto AsyncItemPaged se messages_per_page è impostato. next() può essere usato per ottenere la pagina successiva.

visibility_timeout
int

Se non specificato, il valore predefinito è 30. Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Il valore deve essere maggiore o uguale a 1 e non può essere maggiore di 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo all'ora di scadenza. visibility_timeout deve essere impostato su un valore inferiore al valore tempo-to-live.

max_messages
int

Intero che specifica il numero massimo di messaggi da recuperare dalla coda.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene monitorato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Restituisce un iteratore di messaggi di oggetti Message simili a ct.

Tipo restituito

Esempio

Ricevere messaggi dalla coda.


   # 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

Aggiunge un nuovo messaggio alla parte posteriore della coda del messaggio.

Il timeout di visibilità specifica l'ora in cui il messaggio sarà invisibile. Alla scadenza del timeout, il messaggio diventerà visibile. Se non viene specificato alcun timeout di visibilità, viene usato il valore predefinito 0.

Il time-to-live del messaggio specifica la durata di un messaggio nella coda. Il messaggio verrà eliminato dalla coda alla scadenza del periodo TTL.

Se il campo key-encryption-key è impostato sull'oggetto servizio locale, questo metodo crittograferà il contenuto prima del caricamento.

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

Parametri

content
Optional[object]
Necessario

Contenuto del messaggio. Il tipo consentito è determinato dal encode_function impostato nel servizio. Il valore predefinito è str. Il messaggio codificato può essere fino a 64 KB di dimensioni.

visibility_timeout
int

Il valore predefinito, utilizzato quando questo parametro non viene specificato, è 0. Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Il valore deve essere maggiore o uguale a 0 e non può essere maggiore di 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo all'ora di scadenza. visibility_timeout deve essere impostato su un valore inferiore al valore tempo-to-live.

time_to_live
int

Specifica l'intervallo TTL del messaggio, in secondi. Il tempo da vivere può essere qualsiasi numero positivo o -1 per infinito. Se questo parametro viene omesso, il valore TTL predefinito è 7 giorni.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene monitorato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Un oggetto QueueMessage. Questo oggetto viene popolato anche con il contenuto anche se non viene restituito dal servizio.

Tipo restituito

Esempio

Inviare messaggi.


   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

Imposta i criteri di accesso archiviati per la coda da utilizzare con firme di accesso condiviso.

Quando si impostano le autorizzazioni per una coda, le autorizzazioni esistenti vengono sostituite. Per aggiornare le autorizzazioni della coda, chiamare get_queue_access_policy per recuperare tutti i criteri di accesso associati alla coda, modificare i criteri di accesso da modificare e quindi chiamare questa funzione con il set completo di dati per eseguire l'aggiornamento.

La creazione di un criterio di accesso archiviato in una coda potrebbe richiedere fino a 30 secondi. Durante questo intervallo, una firma di accesso condiviso associata ai criteri di accesso archiviati genererà un'eccezione <xref:azure.storage.queue.aio.HttpResponseError> fino a quando i criteri di accesso non diventano attivi.

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

Parametri

signed_identifiers
Dict[str, AccessPolicy]
Necessario

Criteri di accesso di SignedIdentifier da associare alla coda. Può contenere fino a 5 elementi. Un dict vuoto cancella i criteri di accesso impostati nel servizio.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Esempio

Impostare un criterio di accesso nella coda.


   # 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

Imposta i metadati definiti dall'utente nella coda specificata.

I metadati vengono associati alla coda come coppie nome-valore.

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

Parametri

metadata
Optional[Dict[str, Any]]
Necessario

Dict contenente coppie nome-valore da associare alla coda come metadati.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Dizionario di intestazioni di risposta.

Tipo restituito

Esempio

Impostare i metadati nella coda.


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

update_message

Aggiornamenti il timeout di visibilità di un messaggio. È anche possibile usare questa operazione per aggiornare il contenuto di un messaggio.

Questa operazione può essere usata per estendere continuamente l'invisibilità di un messaggio della coda. Questa funzionalità può essere utile se si vuole che un ruolo di lavoro "lease" un messaggio della coda. Ad esempio, se un ruolo di lavoro chiama receive_messages e riconosce che richiede più tempo per elaborare un messaggio, può estendere continuamente l'invisibilità del messaggio fino a quando non viene elaborato. Se il ruolo di lavoro restituisse un errore durante l'elaborazione, il messaggio diventerebbe nuovamente visibile e verrebbe elaborato da un altro ruolo di lavoro.

Se il campo key-encryption-key è impostato nell'oggetto servizio locale, questo metodo crittograferà il contenuto prima del caricamento.

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

Parametri

message
str oppure QueueMessage
Necessario

Oggetto messaggio o ID che identifica il messaggio da aggiornare.

pop_receipt
str
Necessario

Valore di ricezione valido restituito da una chiamata precedente all'operazione receive_messages o update_message.

content
Optional[object]
Necessario

Contenuto del messaggio. Il tipo consentito è determinato dal encode_function impostato nel servizio. Il valore predefinito è str.

visibility_timeout
int

Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Il nuovo valore deve essere maggiore o uguale a 0 e non può essere superiore a 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo all'ora di scadenza. È possibile aggiornare un messaggio finché non scade o non viene eliminato. Oggetto messaggio o ID messaggio che identifica il messaggio da aggiornare.

timeout
int

Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Questo valore non viene rilevato o convalidato nel client. Per configurare i timeout di rete lato client, vedere qui.

Restituisce

Un oggetto QueueMessage. Per praticità, questo oggetto viene popolato anche con il contenuto, anche se non viene restituito dal servizio.

Tipo restituito

Esempio

Aggiornare un messaggio.


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

Attributi

api_version

Versione dell'API di archiviazione usata per le richieste.

Tipo restituito

str

location_mode

Modalità di posizione attualmente usata dal client.

Per impostazione predefinita, il valore sarà "primario". Le opzioni includono "primary" e "secondary".

Tipo restituito

str

primary_endpoint

URL completo dell'endpoint primario.

Tipo restituito

str

primary_hostname

Nome host dell'endpoint primario.

Tipo restituito

str

secondary_endpoint

URL dell'endpoint secondario completo, se configurato.

Se non è disponibile, verrà generato un valore ValueError. Per specificare in modo esplicito un nome host secondario, usare l'argomento facoltativo secondary_hostname parola chiave nella creazione di istanze.

Tipo restituito

str

Eccezioni

secondary_hostname

Nome host dell'endpoint secondario.

Se non disponibile, non sarà disponibile. Per specificare in modo esplicito un nome host secondario, usare l'argomento facoltativo secondary_hostname parola chiave nella creazione di istanze.

Tipo restituito

url

URL completo dell'endpoint per questa entità, incluso il token di firma di accesso condiviso, se usato.

Può trattarsi dell'endpoint primario o dell'endpoint secondario a seconda dell'oggetto corrente location_mode. :returns: URL completo dell'endpoint per questa entità, incluso il token di firma di accesso condiviso, se usato. :rtype: str