QueueClient Classe
Un client per interagire con una coda specifica.
Per altre configurazioni facoltative, fare clic qui.
- Ereditarietà
-
azure.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 | TokenCredential | None = None, **kwargs: Any)
Parametri
- account_url
- str
URL dell'account di archiviazione. Per creare un client dato l'URI completo alla coda, usare la from_queue_url classemethod.
- credential
Credenziali con cui eseguire l'autenticazione. Questo è facoltativo se l'URL dell'account ha già un token di firma di accesso condiviso. Il valore può essere una stringa di token sas, un'istanza di AzureSasCredential o AzureNamedKeyCredential da azure.core.credential, 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.
- 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. Il valore predefinito non è codificare i messaggi. Altre opzioni includono TextBase64EncodePolicy, BinaryBase64EncodePolicy o Nessuno.
- message_decode_policy
Criterio di decodifica da usare nei messaggi in ingresso. Il valore predefinito non è decodificare i messaggi. Altre opzioni includono TextBase64DecodePolicy, BinaryBase64DecodePolicy o Nessuno.
- 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.
Esempio
Creare il client della coda con URL e credenziali.
token_auth_queue = QueueClient.from_queue_url(
queue_url=queue.url,
credential=sas_token
)
Metodi
clear_messages |
Elimina tutti i messaggi dalla coda specificata. |
close |
Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usare 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 un 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 avere l'oggetto messaggio stesso o 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 dall'operazione più recentereceive_messages. Affinché l'operazione di delete_message abbia esito positivo, il pop_receipt specificato nella richiesta deve corrispondere alla pop_receipt restituita 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 contrassegnata immediatamente 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 almeno 40 secondi per completare. Se un'operazione viene tentata rispetto alla coda durante l'eliminazione, verrà generata un'operazione <xref:azure.storage.queue.HttpResponseError> . |
from_connection_string |
Creare QueueClient da una stringa di connessione. |
from_queue_url |
Un client per 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 nell'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 di 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 nell'oggetto 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 di 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 recupererà continuamente i messaggi finché la coda non è vuota o max_messages viene raggiunta (se è impostata max_messages). Se il campo key-encryption-key o resolver è impostato nell'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti. |
send_message |
Aggiunge un nuovo messaggio alla parte posteriore della coda dei messaggi. Il timeout della 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 per quanto tempo un messaggio rimarrà nella coda. Il messaggio verrà eliminato dalla coda alla scadenza del periodo TTL. Se il campo key-encryption-key è impostato nell'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.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.
clear_messages(**kwargs: Any) -> None
Parametri
- timeout
- int
Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://video2.skills-academy.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.
Esempio
Cancella tutti i messaggi.
queue.clear_messages()
close
Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usare quando si usa con un gestore di contesto.
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 un resourceExistsError.
create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None
Parametri
Un 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://video2.skills-academy.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
Nessuno o il risultato di cls(response)
Tipo restituito
Eccezioni
Esempio
Creare una coda.
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 avere l'oggetto messaggio stesso o 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 dall'operazione più recentereceive_messages. Affinché l'operazione di delete_message abbia esito positivo, il pop_receipt specificato nella richiesta deve corrispondere alla pop_receipt restituita dall'operazione receive_messages o update_message .
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 della ricevuta pop valido restituito da una chiamata precedente all'oggetto receive_messages o update_message.
- timeout
- int
Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://video2.skills-academy.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.
Esempio
Eliminare un messaggio.
# Get the message at the front of the queue
msg = next(queue.receive_messages())
# Delete the specified message
queue.delete_message(msg)
delete_queue
Elimina la coda specificata e tutti i messaggi contenuti.
Quando una coda viene eliminata correttamente, viene contrassegnata immediatamente 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 almeno 40 secondi per completare. Se un'operazione viene tentata rispetto alla coda durante l'eliminazione, verrà generata un'operazione <xref:azure.storage.queue.HttpResponseError> .
delete_queue(**kwargs: Any) -> None
Parametri
- timeout
- int
Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://video2.skills-academy.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.
Tipo restituito
Esempio
Eliminare una coda.
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 | TokenCredential | None = None, **kwargs: Any) -> Self
Parametri
- credential
Credenziali con cui eseguire l'autenticazione. Questo è facoltativo 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 sas, un'istanza di AzureSasCredential o AzureNamedKeyCredential da azure.core.credential, 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 presenti 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 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
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 per interagire con una coda specifica.
from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | 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. Questo è facoltativo 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.
- 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
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_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://video2.skills-academy.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 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.
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 = queue.get_queue_properties().metadata
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 nell'oggetto servizio locale, i messaggi verranno decrittografati prima di essere restituiti.
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://video2.skills-academy.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
Elenco di oggetti QueueMessage. Si noti che next_visible_on e pop_receipt non verranno popolati perché la visualizzazione non popola il messaggio e può recuperare solo i messaggi già visibili.
Tipo restituito
Esempio
Anteprima rapida messaggi.
# Peek at one message at the front of the queue
msg = queue.peek_messages()
# Peek at the last 5 messages
messages = queue.peek_messages(max_messages=5)
# Print the last 5 messages
for message in messages:
print(message.content)
receive_message
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 di 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 nell'oggetto servizio locale, il messaggio verrà decrittografato prima di essere restituito.
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 time-to-live.
- timeout
- int
Imposta il timeout lato server per l'operazione in secondi. Per informazioni dettagliate, vedere https://video2.skills-academy.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
Restituisce un messaggio dalla coda o Nessuno se la coda è vuota.
Tipo restituito
Esempio
Ricevere un messaggio dalla coda.
# Pop two messages from the front of the queue
message1 = queue.receive_message()
message2 = queue.receive_message()
# We should see message 3 if we peek
message3 = queue.peek_messages()[0]
if not message1 or not message2 or not message3:
raise ValueError("One of the messages are None.")
print(message1.content)
print(message2.content)
print(message3.content)
receive_messages
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 di 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 recupererà continuamente i messaggi finché la coda non è vuota o max_messages viene raggiunta (se è impostata max_messages).
Se il campo key-encryption-key o resolver è impostato nell'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) -> ItemPaged[QueueMessage]
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 time-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://video2.skills-academy.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
Restituisce un iteratore di messaggi di oggetti Message simili a.
Tipo restituito
Esempio
Ricevere messaggi dalla coda.
# Receive messages one-by-one
messages = queue.receive_messages()
for msg in messages:
print(msg.content)
# Receive messages by batch
messages = queue.receive_messages(messages_per_page=5)
for msg_batch in messages.by_page():
for msg in msg_batch:
print(msg.content)
queue.delete_message(msg)
send_message
Aggiunge un nuovo messaggio alla parte posteriore della coda dei messaggi.
Il timeout della 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 per quanto tempo un messaggio rimarrà nella coda. Il messaggio verrà eliminato dalla coda alla scadenza del periodo TTL.
Se il campo key-encryption-key è impostato nell'oggetto servizio locale, questo metodo crittograferà il contenuto prima del caricamento.
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ò avere dimensioni fino a 64 KB.
- 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 time-to-live.
- time_to_live
- int
Specifica l'intervallo TTL del messaggio, in secondi. Il time-to-live 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://video2.skills-academy.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. Questo oggetto viene popolato anche con il contenuto anche se non viene restituito dal servizio.
Tipo restituito
Esempio
Inviare messaggi.
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.HttpResponseError> fino a quando i criteri di accesso non diventano attivi.
set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None
Parametri
- signed_identifiers
- Dict[str, AccessPolicy]
SignedIdentifier criteri di accesso 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://video2.skills-academy.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
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.
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://video2.skills-academy.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'}
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.
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://video2.skills-academy.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
queue.send_message("update me")
# Receive the message
messages = queue.receive_messages()
# Update the message
list_result = next(messages)
message = queue.update_message(
list_result.id,
pop_receipt=list_result.pop_receipt,
visibility_timeout=0,
content="updated")
Attributi
api_version
location_mode
Modalità percorso attualmente usata dal client.
Per impostazione predefinita, questo 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 della parola chiave facoltativo secondary_hostname nell'istanza.
Tipo restituito
Eccezioni
secondary_hostname
Nome host dell'endpoint secondario.
Se non è disponibile, questo sarà Nessuno. Per specificare in modo esplicito un nome host secondario, usare l'argomento della parola chiave facoltativo secondary_hostname nell'istanza.
Tipo restituito
url
URL completo dell'endpoint per questa entità, incluso il token di firma di accesso condiviso se usato.
Questo potrebbe essere l'endpoint primario o l'endpoint secondario a seconda dell'oggetto corrente location_mode. :restituisce: URL completo dell'endpoint per questa entità, incluso il token di firma di accesso condiviso se usato. :rtype: str
Azure SDK for Python