ServiceBusClient Classe
La classe ServiceBusClient definisce un'interfaccia di alto livello per ottenere ServiceBusSender e ServiceBusReceiver.
- Ereditarietà
-
builtins.objectServiceBusClient
Costruttore
ServiceBusClient(fully_qualified_namespace: str, credential: AsyncTokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any)
Parametri
- fully_qualified_namespace
- str
Nome host completo per lo spazio dei nomi del bus di servizio. Il formato dello spazio dei nomi è: .servicebus.windows.net.
- credential
- AsyncTokenCredential oppure AzureSasCredential oppure AzureNamedKeyCredential
Oggetto credenziale usato per l'autenticazione che implementa una particolare interfaccia per ottenere i token. Accetta oggetti credenziali generati dalla libreria azure-identity e oggetti che implementano il metodo *get_token(self, scopes) o, in alternativa, è possibile specificare anche AzureSasCredential.
- logging_enable
- bool
Indica se restituire i log di traccia di rete al logger. L'impostazione predefinita è False.
- transport_type
- TransportType
Tipo di protocollo di trasporto che verrà utilizzato per comunicare con il servizio del bus di servizio. Il valore predefinito è TransportType.Amqp nel qual caso viene usata la porta 5671. Se la porta 5671 non è disponibile/bloccata nell'ambiente di rete, è possibile usare TransportType.AmqpOverWebsocket che usa la porta 443 per la comunicazione.
- http_proxy
- Dict
Impostazioni proxy HTTP. Deve essere un dizionario con le chiavi seguenti: 'proxy_hostname' (valore str) e 'proxy_port' (valore int). Inoltre, possono essere presenti le chiavi seguenti: 'username', 'password'.
- user_agent
- str
Se specificato, verrà aggiunto davanti alla stringa predefinita dell'agente utente.
- retry_total
- int
Numero totale di tentativi di rollforward di un'operazione non riuscita quando si verifica un errore. Il valore predefinito è 3.
- retry_backoff_factor
- float
Back-off differenziale interno nell'unità di secondo tra i tentativi. Il valore predefinito è 0,8.
- retry_backoff_max
- float
Intervallo massimo di back-off nell'unità di secondo. Il valore predefinito è 120.
- retry_mode
- str
Comportamento di ritardo tra i tentativi. I valori supportati sono "fixed" o "esponenziale", dove default è "esponenziale".
- custom_endpoint_address
- str
Indirizzo dell'endpoint personalizzato da usare per stabilire una connessione al servizio del bus di servizio, consentendo l'instradamento delle richieste di rete tramite qualsiasi gateway applicazione o altri percorsi necessari per l'ambiente host. L'impostazione predefinita è None. Il formato sarà simile a "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se la porta non è specificata nel custom_endpoint_address, per impostazione predefinita verrà usata la porta 443.
- connection_verify
- str
Percorso del file di CA_BUNDLE personalizzato del certificato SSL usato per autenticare l'identità dell'endpoint di connessione. Il valore predefinito è Nessuno nel qual caso verrà usato certifi.where().
- uamqp_transport
- bool
Indica se usare la libreria uamqp come trasporto sottostante. Il valore predefinito è False e la libreria AMQP Pure Python verrà usata come trasporto sottostante.
Esempio
Creare una nuova istanza di ServiceBusClient.
import os
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
fully_qualified_namespace = os.environ['SERVICEBUS_FULLY_QUALIFIED_NAMESPACE']
servicebus_client = ServiceBusClient(
fully_qualified_namespace=fully_qualified_namespace,
credential=DefaultAzureCredential()
)
Variabili
- fully_qualified_namespace
- str
Nome host completo per lo spazio dei nomi del bus di servizio. Il formato dello spazio dei nomi è: .servicebus.windows.net.
Metodi
close |
Chiudere il client ServiceBus. Tutti i mittenti, i ricevitori e la connessione sottostante generati verranno arrestati. |
from_connection_string |
Creare un ServiceBusClient da una stringa di connessione. |
get_queue_receiver |
Ottenere ServiceBusReceiver per la coda specifica. |
get_queue_sender |
Ottenere ServiceBusSender per la coda specifica. |
get_subscription_receiver |
Ottenere ServiceBusReceiver per la sottoscrizione specifica nell'argomento. |
get_topic_sender |
Ottenere ServiceBusSender per l'argomento specifico. |
close
Chiudere il client ServiceBus. Tutti i mittenti, i ricevitori e la connessione sottostante generati verranno arrestati.
async close() -> None
Restituisce
Nessuno
from_connection_string
Creare un ServiceBusClient da una stringa di connessione.
from_connection_string(conn_str: str, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any) -> ServiceBusClient
Parametri
- logging_enable
- bool
Indica se restituire i log di traccia di rete al logger. L'impostazione predefinita è False.
- transport_type
- TransportType
Tipo di protocollo di trasporto che verrà utilizzato per comunicare con il servizio del bus di servizio. Il valore predefinito è TransportType.Amqp nel qual caso viene usata la porta 5671. Se la porta 5671 non è disponibile/bloccata nell'ambiente di rete, è possibile usare TransportType.AmqpOverWebsocket che usa la porta 443 per la comunicazione.
- http_proxy
- Dict
Impostazioni proxy HTTP. Deve essere un dizionario con le chiavi seguenti: 'proxy_hostname' (valore str) e 'proxy_port' (valore int). Inoltre, possono essere presenti le chiavi seguenti: 'username', 'password'.
- user_agent
- str
Se specificato, verrà aggiunto davanti alla stringa predefinita dell'agente utente.
- retry_total
- int
Numero totale di tentativi di rollforward di un'operazione non riuscita quando si verifica un errore. Il valore predefinito è 3.
- retry_backoff_factor
- float
Back-off differenziale interno nell'unità di secondo tra i tentativi. Il valore predefinito è 0,8.
- retry_backoff_max
- float
Intervallo massimo di back-off nell'unità di secondo. Il valore predefinito è 120.
- retry_mode
- str
Comportamento di ritardo tra i tentativi. I valori supportati sono "fixed" o "esponenziale", dove il valore predefinito è "esponenziale".
- custom_endpoint_address
- str
Indirizzo dell'endpoint personalizzato da usare per stabilire una connessione al servizio del bus di servizio, consentendo l'instradamento delle richieste di rete tramite qualsiasi gateway applicazione o altri percorsi necessari per l'ambiente host. L'impostazione predefinita è None. Il formato sarà simile a "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se la porta non è specificata nella custom_endpoint_address, per impostazione predefinita verrà usata la porta 443.
- connection_verify
- str
Percorso del file di CA_BUNDLE personalizzato del certificato SSL usato per autenticare l'identità dell'endpoint di connessione. Il valore predefinito è Nessuno nel qual caso verrà usato certifi.where().
- uamqp_transport
- bool
Indica se usare la libreria uamqp come trasporto sottostante. Il valore predefinito è False e la libreria AMQP Pure Python verrà usata come trasporto sottostante.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusClient dalla stringa di connessione.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
get_queue_receiver
Ottenere ServiceBusReceiver per la coda specifica.
get_queue_receiver(queue_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver
Parametri
- queue_name
- str
Percorso di coda del bus di servizio specifico a cui si connette il client.
Sessione specifica da cui ricevere. Deve essere specificato per una coda con sessione. In caso contrario, deve essere Nessuno. Per ricevere messaggi dalla sessione disponibile successiva, impostarla su ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str oppure ServiceBusSubQueue oppure None
Se specificato, la sottoquery a cui si connetterà il ricevitore. Sono incluse le code DEAD_LETTER e TRANSFER_DEAD_LETTER, che contiene messaggi che non possono essere recapitati a nessun destinatario o a messaggi che non possono essere elaborati. Il valore predefinito è Nessuno, vale a dire connettersi alla coda primaria. È possibile assegnare valori da enumerazione ServiceBusSubQueue o valori stringa equivalenti "deadletter" e "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Modalità con cui i messaggi verranno recuperati dall'entità. Le due opzioni sono PEEK_LOCK e RECEIVE_AND_DELETE. I messaggi ricevuti con PEEK_LOCK devono essere risolti entro un determinato periodo di blocco prima che vengano rimossi dalla coda. I messaggi ricevuti con RECEIVE_AND_DELETE verranno immediatamente rimossi dalla coda e non potranno essere successivamente rifiutati o ricevuti nuovamente se il client non riesce a elaborare il messaggio. La modalità predefinita è PEEK_LOCK.
Timeout in secondi tra i messaggi ricevuti dopo il quale il ricevitore smetterà di ricevere automaticamente. Il valore predefinito è None, ovvero nessun timeout. Se si verificano errori di connessione a causa del timeout della scrittura, potrebbe essere necessario regolare il valore di timeout della connessione. Per altri dettagli, vedere il parametro facoltativo socket_timeout .
- auto_lock_renewer
- Optional[AutoLockRenewer]
È possibile specificare ~azure.servicebus.aio.AutoLockRenewer in modo che i messaggi vengano registrati automaticamente alla ricezione. Se il ricevitore è un ricevitore di sessione, verrà applicato alla sessione.
- prefetch_count
- int
Numero massimo di messaggi da memorizzare nella cache con ogni richiesta al servizio. Questa impostazione è solo per l'ottimizzazione avanzata delle prestazioni. L'aumento di questo valore migliorerà le prestazioni della velocità effettiva dei messaggi, ma aumenterà la probabilità che i messaggi scadano mentre vengono memorizzati nella cache se non vengono elaborati abbastanza velocemente. Il valore predefinito è 0, ovvero i messaggi verranno ricevuti dal servizio ed elaborati uno alla volta. Nel caso di prefetch_count 0, ServiceBusReceiver.receive tenterà di memorizzare nella cache max_message_count (se specificato) all'interno della richiesta al servizio.
- client_identifier
- str
Identificatore basato su stringa per identificare in modo univoco l'istanza del ricevitore. Il bus di servizio lo associa ad alcuni messaggi di errore per facilitare la correlazione degli errori. Se non specificato, verrà generato un ID univoco.
- socket_timeout
- float
Tempo in secondi in cui il socket sottostante sulla connessione deve attendere quando si inviano e ricevono dati prima del timeout. Il valore predefinito è 0.2 per TransportType.Amqp e 1 per TransportType.AmqpOverWebsocket. Se si verificano errori di connessione a causa del timeout della scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusSender da ServiceBusClient.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
async with servicebus_client:
queue_receiver = servicebus_client.get_queue_receiver(queue_name=queue_name)
get_queue_sender
Ottenere ServiceBusSender per la coda specifica.
get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender
Parametri
- queue_name
- str
Percorso di coda del bus di servizio specifico a cui si connette il client.
- client_identifier
- str
Identificatore basato su stringa per identificare in modo univoco l'istanza del mittente. Il bus di servizio lo associa ad alcuni messaggi di errore per facilitare la correlazione degli errori. Se non specificato, verrà generato un ID univoco.
- socket_timeout
- float
Tempo in secondi in cui il socket sottostante sulla connessione deve attendere quando si inviano e ricevono dati prima del timeout. Il valore predefinito è 0.2 per TransportType.Amqp e 1 per TransportType.AmqpOverWebsocket. Se si verificano errori di connessione a causa del timeout di scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Restituisce
Mittente della coda.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusClient dalla stringa di connessione.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
async with servicebus_client:
queue_sender = servicebus_client.get_queue_sender(queue_name=queue_name)
get_subscription_receiver
Ottenere ServiceBusReceiver per la sottoscrizione specifica nell'argomento.
get_subscription_receiver(topic_name: str, subscription_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver
Parametri
- topic_name
- str
Nome dell'argomento specifico del bus di servizio a cui si connette il client.
- subscription_name
- str
Nome della sottoscrizione specifica del bus di servizio nell'argomento del bus di servizio specificato.
Sessione specifica da cui ricevere. Questa operazione deve essere specificata per una sottoscrizione con sessione, in caso contrario, deve essere Nessuna. Per ricevere messaggi dalla sessione successiva disponibile, impostare questa opzione su ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str oppure ServiceBusSubQueue oppure None
Se specificato, la sottoqueue questo ricevitore si connetterà. Ciò include le code DEAD_LETTER e TRANSFER_DEAD_LETTER, contiene messaggi che non possono essere recapitati a alcun ricevitore o messaggi che non possono essere elaborati. Il valore predefinito è Nessuno, ovvero connettersi alla coda primaria. È possibile assegnare valori da ServiceBusSubQueue o valori di stringa equivalenti "deadletter" e "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Modalità con cui verranno recuperati i messaggi dall'entità. Le due opzioni sono PEEK_LOCK e RECEIVE_AND_DELETE. I messaggi ricevuti con PEEK_LOCK devono essere risolti entro un determinato periodo di blocco prima che vengano rimossi dalla sottoscrizione. I messaggi ricevuti con RECEIVE_AND_DELETE verranno immediatamente rimossi dalla sottoscrizione e non possono essere successivamente rifiutati o re-ricevuti se il client non riesce a elaborare il messaggio. La modalità predefinita è PEEK_LOCK.
Timeout in secondi tra i messaggi ricevuti dopo il quale il ricevitore interrompe automaticamente la ricezione. Il valore predefinito è Nessuno, ovvero nessun timeout. Se si verificano errori di connessione a causa del timeout di scrittura, potrebbe essere necessario modificare il valore del timeout della connessione. Per altre informazioni, vedere il parametro facoltativo socket_timeout .
- auto_lock_renewer
- Optional[AutoLockRenewer]
È possibile specificare ~azure.servicebus.aio.AutoLockRenewer in modo che i messaggi vengano registrati automaticamente nella ricezione. Se il ricevitore è un ricevitore di sessione, verrà applicato invece alla sessione.
- prefetch_count
- int
Numero massimo di messaggi da memorizzare nella cache con ogni richiesta al servizio. Questa impostazione è solo per l'ottimizzazione avanzata delle prestazioni. L'aumento di questo valore migliora le prestazioni della velocità effettiva dei messaggi, ma aumenta la probabilità che i messaggi scadano mentre vengono memorizzati nella cache se non vengono elaborati abbastanza velocemente. Il valore predefinito è 0, ovvero i messaggi verranno ricevuti dal servizio e elaborati uno alla volta. Nel caso di prefetch_count 0, ServiceBusReceiver.receive tenterà di memorizzare nella cache max_message_count (se specificato) all'interno della richiesta al servizio.
- client_identifier
- str
Identificatore basato su stringa per identificare in modo univoco l'istanza del ricevitore. Il bus di servizio lo associa ad alcuni messaggi di errore per semplificare la correlazione degli errori. Se non specificato, verrà generato un ID univoco.
- socket_timeout
- float
Tempo in secondi in cui il socket sottostante sulla connessione deve attendere quando si inviano e ricevono dati prima del timeout. Il valore predefinito è 0.2 per TransportType.Amqp e 1 per TransportType.AmqpOverWebsocket. Se si verificano errori di connessione a causa del timeout di scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusReceiver da ServiceBusClient.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
topic_name = os.environ["SERVICEBUS_TOPIC_NAME"]
subscription_name = os.environ["SERVICEBUS_SUBSCRIPTION_NAME"]
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
async with servicebus_client:
subscription_receiver = servicebus_client.get_subscription_receiver(
topic_name=topic_name,
subscription_name=subscription_name,
)
get_topic_sender
Ottenere ServiceBusSender per l'argomento specifico.
get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender
Parametri
- topic_name
- str
Percorso di un argomento specifico del bus di servizio a cui si connette il client.
- client_identifier
- str
Identificatore basato su stringa per identificare in modo univoco l'istanza del mittente. Il bus di servizio lo associa ad alcuni messaggi di errore per semplificare la correlazione degli errori. Se non specificato, verrà generato un ID univoco.
- socket_timeout
- float
Tempo in secondi in cui il socket sottostante sulla connessione deve attendere quando si inviano e ricevono dati prima del timeout. Il valore predefinito è 0.2 per TransportType.Amqp e 1 per TransportType.AmqpOverWebsocket. Se si verificano errori di connessione a causa del timeout di scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Restituisce
Mittente di argomenti.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusSender da ServiceBusClient.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
topic_name = os.environ['SERVICEBUS_TOPIC_NAME']
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
async with servicebus_client:
topic_sender = servicebus_client.get_topic_sender(topic_name=topic_name)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per