QueueClient Classe
Un client per interagire con una coda specifica.
- Ereditarietà
-
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixinQueueClientazure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueClientazure.storage.queue._encryption.StorageEncryptionMixinQueueClient
Costruttore
QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any)
Parametri
- account_url
- str
URL dell'account di archiviazione. Per creare un client dato l'URI completo alla coda, usare il from_queue_url metodo classmethod.
- credential
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
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
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
Oggetto messaggio o ID che identifica il messaggio da eliminare.
- pop_receipt
- str
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
- credential
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
URI completo della coda, incluso il token di firma di accesso condiviso, se usato.
- credential
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
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
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]
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
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
Oggetto messaggio o ID che identifica il messaggio da aggiornare.
- pop_receipt
- str
Valore di ricezione valido restituito da una chiamata precedente all'operazione receive_messages o update_message.
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
location_mode
Modalità di posizione attualmente usata dal client.
Per impostazione predefinita, il valore sarà "primario". Le opzioni includono "primary" e "secondary".
Tipo restituito
primary_endpoint
primary_hostname
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
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
Azure SDK for Python