Partager via


ServiceBusClient Classe

La classe ServiceBusClient définit une interface de haut niveau pour obtenir ServiceBusSender et ServiceBusReceiver.

Héritage
builtins.object
ServiceBusClient

Constructeur

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)

Paramètres

fully_qualified_namespace
str
Obligatoire

Nom d’hôte complet de l’espace de noms Service Bus. Le format de l’espace de noms est . servicebus.windows.net.

credential
TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Obligatoire

Objet d’informations d’identification utilisé pour l’authentification qui implémente une interface particulière pour obtenir des jetons. Il accepte les objets d’informations d’identification générés par la bibliothèque d’identité azure et les objets qui implémentent la méthode *get_token(self, scopes), ou une instance AzureSasCredential peut également être fournie.

logging_enable
bool

Indique s’il faut générer des journaux de trace réseau vers l’enregistreur d’événements. La valeur par défaut est False.

transport_type
TransportType

Type de protocole de transport qui sera utilisé pour communiquer avec le service Service Bus. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 n’est pas disponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.

http_proxy
Dict

Paramètres du proxy HTTP. Il doit s’agir d’un dictionnaire avec les clés suivantes : « proxy_hostname » (valeur str) et « proxy_port » (valeur int). En outre, les clés suivantes peuvent également être présentes : « nom d’utilisateur », « mot de passe ».

user_agent
str

S’il est spécifié, cela sera ajouté devant la chaîne d’agent utilisateur intégrée.

retry_total
int

Nombre total de tentatives de restauration d’une opération ayant échoué en cas d’erreur. La valeur par défaut est 3.

retry_backoff_factor
float

Sauvegarde delta interne dans l’unité de seconde entre les nouvelles tentatives. La valeur par défaut est 0,8.

retry_backoff_max
float

Intervalle de back-off maximal dans l’unité de seconde. La valeur par défaut est 120.

retry_mode
str

Comportement de retard entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».

custom_endpoint_address
str

Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Service Bus, ce qui permet aux demandes réseau d’être acheminées via toutes les passerelles d’application ou autres chemins d’accès nécessaires pour l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname>:<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.

connection_verify
str

Chemin d’accès au fichier CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.

uamqp_transport
bool

Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.

Exemples

Créez une instance du 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()
   )

Variables

fully_qualified_namespace
str

Nom d’hôte complet de l’espace de noms Service Bus. Le format de l’espace de noms est . servicebus.windows.net.

Méthodes

close

Fermez le client ServiceBus. Tous les expéditeurs, récepteurs et connexion sous-jacente générés seront arrêtés.

from_connection_string

Créez un ServiceBusClient à partir d’une chaîne de connexion.

get_queue_receiver

Obtenez ServiceBusReceiver pour la file d’attente spécifique.

get_queue_sender

Obtenez ServiceBusSender pour la file d’attente spécifique.

get_subscription_receiver

Obtenez ServiceBusReceiver pour l’abonnement spécifique sous la rubrique .

get_topic_sender

Obtenez ServiceBusSender pour la rubrique spécifique.

close

Fermez le client ServiceBus. Tous les expéditeurs, récepteurs et connexion sous-jacente générés seront arrêtés.

close() -> None

Retours

Aucun

from_connection_string

Créez un ServiceBusClient à partir d’une chaîne de connexion.

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

Paramètres

conn_str
str
Obligatoire

Chaîne de connexion d’un Service Bus.

logging_enable
bool

Indique s’il faut générer des journaux de trace réseau vers l’enregistreur d’événements. La valeur par défaut est False.

transport_type
TransportType

Type de protocole de transport qui sera utilisé pour communiquer avec le service Service Bus. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 n’est pas disponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.

http_proxy
Dict

Paramètres du proxy HTTP. Il doit s’agir d’un dictionnaire avec les clés suivantes : « proxy_hostname » (valeur str) et « proxy_port » (valeur int). En outre, les clés suivantes peuvent également être présentes : « nom d’utilisateur », « mot de passe ».

user_agent
str

S’il est spécifié, cela sera ajouté devant la chaîne d’agent utilisateur intégrée.

retry_total
int

Nombre total de tentatives de restauration d’une opération ayant échoué en cas d’erreur. La valeur par défaut est 3.

retry_backoff_factor
float

Sauvegarde delta interne dans l’unité de seconde entre les nouvelles tentatives. La valeur par défaut est 0,8.

retry_backoff_max
float

Intervalle de back-off maximal dans l’unité de seconde. La valeur par défaut est 120.

retry_mode
str

Comportement de retard entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».

custom_endpoint_address
str

Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Service Bus, ce qui permet aux demandes réseau d’être acheminées via toutes les passerelles d’application ou autres chemins d’accès nécessaires pour l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname>:<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.

connection_verify
str

Chemin d’accès au fichier CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.

uamqp_transport
bool

Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.

Type de retour

Exemples

Créez une instance du ServiceBusClient à partir de la chaîne de connexion.


   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

Obtenez ServiceBusReceiver pour la file d’attente spécifique.

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

Paramètres

queue_name
str
Obligatoire

Chemin d’accès de la file d’attente Service Bus spécifique à laquelle le client se connecte.

session_id
str ou <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Session spécifique à partir de laquelle recevoir. Cela doit être spécifié pour une file d’attente de session, sinon il doit être Aucun. Pour recevoir des messages de la prochaine session disponible, définissez-la sur ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str ou ServiceBusSubQueue ou None

S’il est spécifié, la sous-file d’attente à laquelle ce récepteur se connectera. Cela inclut les files d’attente DEAD_LETTER et TRANSFER_DEAD_LETTER, contient les messages qui ne peuvent pas être remis à un destinataire ou les messages qui ne peuvent pas être traités. La valeur par défaut est None, ce qui signifie se connecter à la file d’attente principale. Peut recevoir des valeurs à partir de l’énumération ServiceBusSubQueue ou des valeurs de chaîne équivalentes « deadletter » et « transferdeadletter ».

receive_mode
Union[ServiceBusReceiveMode, str]

Le receive_mode avec lequel les messages seront récupérés à partir de l’entité. Les deux options sont PEEK_LOCK et RECEIVE_AND_DELETE. Les messages reçus avec PEEK_LOCK doivent être réglés dans une période de verrouillage donnée avant d’être supprimés de la file d’attente. Les messages reçus avec RECEIVE_AND_DELETE sont immédiatement supprimés de la file d’attente et ne peuvent pas être rejetés ou ré-reçus par la suite si le client ne parvient pas à traiter le message. Le receive_mode par défaut est PEEK_LOCK.

max_wait_time
Optional[float]

Délai d’attente en secondes entre les messages reçus, après quoi le destinataire cesse automatiquement de recevoir. La valeur par défaut est None, c’est-à-dire aucun délai d’attente. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, la valeur du délai d’expiration de la connexion peut devoir être ajustée. Pour plus d’informations, consultez le paramètre facultatif socket_timeout.

auto_lock_renewer
Optional[AutoLockRenewer]

Un ~azure.servicebus.AutoLockRenewer peut être fourni de manière à ce que les messages soient automatiquement enregistrés lors de la réception. Si le récepteur est un récepteur de session, il s’applique à la session à la place.

prefetch_count
int

Nombre maximal de messages à mettre en cache avec chaque requête adressée au service. Ce paramètre est uniquement destiné à l’optimisation avancée des performances. L’augmentation de cette valeur améliore les performances de débit des messages, mais augmente les chances que les messages expirent pendant leur mise en cache s’ils ne sont pas traités assez rapidement. La valeur par défaut est 0, ce qui signifie que les messages seront reçus du service et traités un par un. Dans le cas où prefetch_count est 0, ServiceBusReceiver.receive essaie de mettre en cache max_message_count (s’il est fourni) dans sa demande adressée au service.

client_identifier
str

Identificateur basé sur des chaînes permettant d’identifier de manière unique le récepteur instance. Service Bus l’associera à certains messages d’erreur pour faciliter la corrélation des erreurs. S’il n’est pas spécifié, un ID unique est généré.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, une valeur supérieure à la valeur par défaut peut être transmise.

Type de retour

Exemples

Créez une instance du ServiceBusReceiver à partir de 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

Obtenez ServiceBusSender pour la file d’attente spécifique.

get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender

Paramètres

queue_name
str
Obligatoire

Chemin d’accès de la file d’attente Service Bus spécifique à laquelle le client se connecte.

client_identifier
str

Identificateur basé sur une chaîne permettant d’identifier de manière unique l’expéditeur instance. Service Bus l’associera à certains messages d’erreur pour faciliter la corrélation des erreurs. S’il n’est pas spécifié, un ID unique est généré.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, une valeur supérieure à la valeur par défaut peut être transmise.

Retours

Expéditeur de file d’attente.

Type de retour

Exemples

Créez une instance du ServiceBusSender à partir de 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

Obtenez ServiceBusReceiver pour l’abonnement spécifique sous la rubrique .

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

Paramètres

topic_name
str
Obligatoire

Nom de la rubrique Service Bus spécifique à laquelle le client se connecte.

subscription_name
str
Obligatoire

Nom de l’abonnement Service Bus spécifique sous la rubrique Service Bus donnée.

session_id
str ou <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Session spécifique à partir de laquelle recevoir. Cela doit être spécifié pour un abonnement de session, sinon, il doit être None. Pour recevoir des messages de la prochaine session disponible, définissez-la sur ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str ou ServiceBusSubQueue ou None

S’il est spécifié, la sous-file d’attente à laquelle ce récepteur se connectera. Cela inclut les files d’attente DEAD_LETTER et TRANSFER_DEAD_LETTER, contient les messages qui ne peuvent pas être remis à un destinataire ou les messages qui ne peuvent pas être traités. La valeur par défaut est None, ce qui signifie se connecter à la file d’attente principale. Peut recevoir des valeurs à partir de l’énumération ServiceBusSubQueue ou des valeurs de chaîne équivalentes « deadletter » et « transferdeadletter ».

receive_mode
Union[ServiceBusReceiveMode, str]

Le receive_mode avec lequel les messages seront récupérés à partir de l’entité. Les deux options sont PEEK_LOCK et RECEIVE_AND_DELETE. Les messages reçus avec PEEK_LOCK doivent être réglés dans une période de verrouillage donnée avant d’être supprimés de l’abonnement. Les messages reçus avec RECEIVE_AND_DELETE sont immédiatement supprimés de l’abonnement et ne peuvent pas être rejetés ou ré-reçus ultérieurement si le client ne parvient pas à traiter le message. Le receive_mode par défaut est PEEK_LOCK.

max_wait_time
Optional[float]

Délai d’attente en secondes entre les messages reçus, après quoi le destinataire cesse automatiquement de recevoir. La valeur par défaut est None, c’est-à-dire aucun délai d’attente. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, la valeur du délai d’expiration de la connexion peut devoir être ajustée. Pour plus d’informations, consultez le paramètre facultatif socket_timeout.

auto_lock_renewer
Optional[AutoLockRenewer]

Un ~azure.servicebus.AutoLockRenewer peut être fourni de manière à ce que les messages soient automatiquement enregistrés lors de la réception. Si le récepteur est un récepteur de session, il s’applique à la session à la place.

prefetch_count
int

Nombre maximal de messages à mettre en cache avec chaque requête adressée au service. Ce paramètre est uniquement destiné à l’optimisation avancée des performances. L’augmentation de cette valeur améliore les performances de débit des messages, mais augmente les chances que les messages expirent pendant leur mise en cache s’ils ne sont pas traités assez rapidement. La valeur par défaut est 0, ce qui signifie que les messages seront reçus du service et traités un par un. Dans le cas où prefetch_count est 0, ServiceBusReceiver.receive essaie de mettre en cache max_message_count (s’il est fourni) dans sa demande adressée au service.

client_identifier
str

Identificateur basé sur des chaînes permettant d’identifier de manière unique le récepteur instance. Service Bus l’associera à certains messages d’erreur pour faciliter la corrélation des erreurs. S’il n’est pas spécifié, un ID unique est généré.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, une valeur supérieure à la valeur par défaut peut être transmise.

Type de retour

Exemples

Créez une instance du ServiceBusReceiver à partir de 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

Obtenez ServiceBusSender pour la rubrique spécifique.

get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender

Paramètres

topic_name
str
Obligatoire

Chemin d’accès de la rubrique Service Bus spécifique à laquelle le client se connecte.

client_identifier
str

Identificateur basé sur une chaîne permettant d’identifier de manière unique l’expéditeur instance. Service Bus l’associera à certains messages d’erreur pour faciliter la corrélation des erreurs. S’il n’est pas spécifié, un ID unique est généré.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, une valeur supérieure à la valeur par défaut peut être transmise.

Retours

Expéditeur de rubrique.

Type de retour

Exemples

Créez une instance du ServiceBusSender à partir de 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)