Condividi tramite


QueueClient Classe

Un client per interagire con una coda specifica.

Per altre configurazioni facoltative, fare clic qui.

Ereditarietà
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 | TokenCredential | 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 la from_queue_url classemethod.

queue_name
str
Necessario

Nome della coda.

credential
valore predefinito: None

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://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.

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

metadata
Dict[str,str]

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://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

Nessuno o il risultato di cls(response)

Tipo restituito

Eccezioni

StorageErrorException

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
Necessario

Oggetto messaggio o ID che identifica il messaggio da eliminare.

pop_receipt
str
Necessario

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://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.

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://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.

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

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. 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
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. 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://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 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
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 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://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

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://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

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

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ò 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://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. 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]
Necessario

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://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
   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

metadata
Optional[Dict[str, str]]
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'}
   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
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
   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

Versione dell'API di archiviazione usata per le richieste.

Tipo restituito

str

location_mode

Modalità percorso attualmente usata dal client.

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

Tipo restituito

str

primary_endpoint

URL dell'endpoint primario completo.

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 della parola chiave facoltativo secondary_hostname nell'istanza.

Tipo restituito

str

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