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: TokenCredential | 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
- TokenCredential oppure AzureSasCredential oppure AzureNamedKeyCredential
Oggetto credenziale usato per l'autenticazione che implementa un'interfaccia specifica per ottenere i token. Accetta oggetti credenziali generati dalla libreria e dagli oggetti azure-identity che implementano anche il metodo *get_token(self, ambiti) 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à usato per comunicare con il servizio bus di servizio. Il valore predefinito è TransportType.Amqp in cui viene usata la porta 5671. Se la porta 5671 non è disponibile/bloccata nell'ambiente di rete, TransportType.AmqpOverWebsocket può essere usata invece 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, le chiavi seguenti possono essere presenti: 'username', 'password'.
- user_agent
- str
Se specificato, verrà aggiunto davanti alla stringa dell'agente utente predefinita.
- retry_total
- int
Numero totale di tentativi di ridistribuire 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 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 tentativi di ripetizione. I valori supportati sono "fissi" o "esponenziali", dove il valore predefinito è "esponenziale".
- custom_endpoint_address
- str
Indirizzo dell'endpoint personalizzato da usare per stabilire una connessione al servizio 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à "sb:// custom_endpoint_hostname>:<custom_endpoint_port<>". Se la porta non è specificata nella custom_endpoint_address, verrà usata per impostazione predefinita la porta 443.
- connection_verify
- str
Percorso del file personalizzato CA_BUNDLE del certificato SSL usato per autenticare l'identità dell'endpoint di connessione. Il valore predefinito è None nel caso in cui verrà usato certifi.where().
- uamqp_transport
- bool
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 import DefaultAzureCredential
from azure.servicebus 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 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 verranno arrestati.
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à usato per comunicare con il servizio bus di servizio. Il valore predefinito è TransportType.Amqp in cui viene usata la porta 5671. Se la porta 5671 non è disponibile/bloccata nell'ambiente di rete, TransportType.AmqpOverWebsocket può essere usata invece 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, le chiavi seguenti possono essere presenti: 'username', 'password'.
- user_agent
- str
Se specificato, verrà aggiunto davanti alla stringa dell'agente utente predefinita.
- retry_total
- int
Numero totale di tentativi di ridistribuire 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 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 tentativi di ripetizione. I valori supportati sono "fissi" o "esponenziali", dove il valore predefinito è "esponenziale".
- custom_endpoint_address
- str
Indirizzo dell'endpoint personalizzato da usare per stabilire una connessione al servizio 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à "sb:// custom_endpoint_hostname>:<custom_endpoint_port<>". Se la porta non è specificata nella custom_endpoint_address, verrà usata per impostazione predefinita la porta 443.
- connection_verify
- str
Percorso del file personalizzato CA_BUNDLE del certificato SSL usato per autenticare l'identità dell'endpoint di connessione. Il valore predefinito è None nel caso in cui verrà usato certifi.where().
- uamqp_transport
- bool
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 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.
- session_id
- str oppure <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Sessione specifica da cui ricevere. Questa operazione deve essere specificata per una coda con sessione, in caso contrario non 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]
Receive_mode 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 coda. I messaggi ricevuti con RECEIVE_AND_DELETE verranno immediatamente rimossi dalla coda e non possono essere successivamente rifiutati o re-ricevuti se il client non riesce a elaborare il messaggio. Il receive_mode predefinito è 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]
Un~azure.servicebus.AutoLockRenewer può essere fornito 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 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)
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 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 della scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Restituisce
Mittente della coda.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusSender da ServiceBusClient.
import os
from azure.servicebus 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)
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 del bus di servizio specifico a cui si connette il client.
- subscription_name
- str
Nome di una sottoscrizione del bus di servizio specifica nell'argomento del bus di servizio specificato.
- session_id
- str oppure <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Sessione specifica da cui ricevere. Deve essere specificato per una sottoscrizione 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]
Il receive_mode 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 potranno essere successivamente rifiutati o ricevuti nuovamente se il client non riesce a elaborare il messaggio. Il receive_mode predefinito è 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.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 ServiceBusReceiver da ServiceBusClient.
import os
from azure.servicebus 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)
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 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 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.
Restituisce
Mittente di un argomento.
Tipo restituito
Esempio
Creare una nuova istanza di ServiceBusSender da ServiceBusClient.
import os
from azure.servicebus 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)
with servicebus_client:
topic_sender = servicebus_client.get_topic_sender(topic_name=topic_name)