ServiceBusClient Klas

De Klasse ServiceBusClient definieert een interface op hoog niveau voor het ophalen van ServiceBusSender en ServiceBusReceiver.

Overname
builtins.object
ServiceBusClient

Constructor

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)

Parameters

fully_qualified_namespace
str
Vereist

De volledig gekwalificeerde hostnaam voor de Service Bus-naamruimte. De indeling van de naamruimte is: .servicebus.windows.net.

credential
TokenCredential of AzureSasCredential of AzureNamedKeyCredential
Vereist

Het referentieobject dat wordt gebruikt voor verificatie, waarmee een bepaalde interface wordt geïmplementeerd voor het ophalen van tokens. Het accepteert referentieobjecten die zijn gegenereerd door de azure-identity-bibliotheek en objecten die de methode *get_token (zelf, bereiken) implementeren, of er kan ook een AzureSasCredential worden opgegeven.

logging_enable
bool

Of netwerktraceringslogboeken naar de logboekregistratie moeten worden uitgevoerd. De standaardwaarde is Onwaar.

transport_type
TransportType

Het type transportprotocol dat wordt gebruikt voor de communicatie met de Service Bus-service. De standaardwaarde is TransportType.Amqp , in welk geval poort 5671 wordt gebruikt. Als poort 5671 niet beschikbaar/geblokkeerd is in de netwerkomgeving, kan TransportType.AmqpOverWebsocket worden gebruikt in plaats van poort 443 voor communicatie.

http_proxy
Dict

HTTP-proxyinstellingen. Dit moet een woordenlijst zijn met de volgende toetsen: 'proxy_hostname' (str-waarde) en 'proxy_port' (int-waarde). Daarnaast kunnen ook de volgende sleutels aanwezig zijn: 'gebruikersnaam', 'wachtwoord'.

user_agent
str

Indien opgegeven, wordt deze toegevoegd vóór de ingebouwde tekenreeks van de gebruikersagent.

retry_total
int

Het totale aantal pogingen om een mislukte bewerking opnieuw uit te voeren wanneer er een fout optreedt. De standaardwaarde is 3.

retry_backoff_factor
float

Delta-back-off intern in de eenheid van de seconde tussen nieuwe pogingen. De standaardwaarde is 0,8.

retry_backoff_max
float

Maximum interval voor back-off in de eenheid van seconde. De standaardwaarde is 120.

retry_mode
str

Het vertragingsgedrag tussen nieuwe pogingen. Ondersteunde waarden zijn 'vast' of 'exponentieel', waarbij de standaardwaarde 'exponentieel' is.

custom_endpoint_address
str

Het aangepaste eindpuntadres dat moet worden gebruikt voor het tot stand brengen van een verbinding met de Service Bus-service, zodat netwerkaanvragen kunnen worden gerouteerd via toepassingsgateways of andere paden die nodig zijn voor de hostomgeving. De standaardwaarde is Geen. De indeling ziet er ongeveer als volgt uit: 'sb://< custom_endpoint_hostname>:<custom_endpoint_port>'. Als poort niet is opgegeven in de custom_endpoint_address, wordt standaard poort 443 gebruikt.

connection_verify
str

Pad naar het aangepaste CA_BUNDLE-bestand van het SSL-certificaat dat wordt gebruikt om de identiteit van het verbindingseindpunt te verifiëren. De standaardwaarde is Geen, in welk geval certifi.where() wordt gebruikt.

uamqp_transport
bool

Of u de uamqp-bibliotheek wilt gebruiken als het onderliggende transport. De standaardwaarde is False en de Pure Python AMQP-bibliotheek wordt gebruikt als het onderliggende transport.

Voorbeelden

Maak een nieuw exemplaar van de 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()
   )

Variabelen

fully_qualified_namespace
str

De volledig gekwalificeerde hostnaam voor de Service Bus-naamruimte. De indeling van de naamruimte is: .servicebus.windows.net.

Methoden

close

Sluit de ServiceBus-client. Alle voortgebrachte afzenders, ontvangers en onderliggende verbinding worden afgesloten.

from_connection_string

Maak een ServiceBusClient op basis van een connection string.

get_queue_receiver

Haal ServiceBusReceiver op voor de specifieke wachtrij.

get_queue_sender

Haal ServiceBusSender op voor de specifieke wachtrij.

get_subscription_receiver

Haal ServiceBusReceiver op voor het specifieke abonnement onder het onderwerp.

get_topic_sender

Download ServiceBusSender voor het specifieke onderwerp.

close

Sluit de ServiceBus-client. Alle voortgebrachte afzenders, ontvangers en onderliggende verbinding worden afgesloten.

close() -> None

Retouren

Geen

from_connection_string

Maak een ServiceBusClient op basis van een connection string.

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

Parameters

conn_str
str
Vereist

De connection string van een Service Bus.

logging_enable
bool

Of netwerktraceringslogboeken naar de logboekregistratie moeten worden uitgevoerd. De standaardwaarde is Onwaar.

transport_type
TransportType

Het type transportprotocol dat wordt gebruikt voor de communicatie met de Service Bus-service. De standaardwaarde is TransportType.Amqp , in welk geval poort 5671 wordt gebruikt. Als poort 5671 niet beschikbaar/geblokkeerd is in de netwerkomgeving, kan TransportType.AmqpOverWebsocket worden gebruikt in plaats van poort 443 voor communicatie.

http_proxy
Dict

HTTP-proxyinstellingen. Dit moet een woordenlijst zijn met de volgende toetsen: 'proxy_hostname' (str-waarde) en 'proxy_port' (int-waarde). Daarnaast kunnen ook de volgende sleutels aanwezig zijn: 'gebruikersnaam', 'wachtwoord'.

user_agent
str

Indien opgegeven, wordt deze toegevoegd vóór de ingebouwde tekenreeks van de gebruikersagent.

retry_total
int

Het totale aantal pogingen om een mislukte bewerking opnieuw uit te voeren wanneer er een fout optreedt. De standaardwaarde is 3.

retry_backoff_factor
float

Delta-back-off intern in de eenheid van de seconde tussen nieuwe pogingen. De standaardwaarde is 0,8.

retry_backoff_max
float

Maximum interval voor back-off in de eenheid van seconde. De standaardwaarde is 120.

retry_mode
str

Het vertragingsgedrag tussen nieuwe pogingen. Ondersteunde waarden zijn 'vast' of 'exponentieel', waarbij standaard 'exponentieel' is.

custom_endpoint_address
str

Het aangepaste eindpuntadres dat moet worden gebruikt voor het tot stand brengen van een verbinding met de Service Bus-service, zodat netwerkaanvragen kunnen worden gerouteerd via toepassingsgateways of andere paden die nodig zijn voor de hostomgeving. De standaardwaarde is Geen. De indeling ziet er ongeveer als volgt uit: 'sb://< custom_endpoint_hostname>:<custom_endpoint_port>'. Als poort niet is opgegeven in de custom_endpoint_address, wordt standaard poort 443 gebruikt.

connection_verify
str

Pad naar het aangepaste CA_BUNDLE-bestand van het SSL-certificaat dat wordt gebruikt om de identiteit van het verbindingseindpunt te verifiëren. De standaardwaarde is Geen, in welk geval certifi.where() wordt gebruikt.

uamqp_transport
bool

Of u de uamqp-bibliotheek wilt gebruiken als het onderliggende transport. De standaardwaarde is False en de Pure Python AMQP-bibliotheek wordt gebruikt als het onderliggende transport.

Retourtype

Voorbeelden

Maak een nieuw exemplaar van de ServiceBusClient vanuit connection string.


   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

Haal ServiceBusReceiver op voor de specifieke wachtrij.

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

Parameters

queue_name
str
Vereist

Het pad van een specifieke Service Bus-wachtrij waar de client verbinding mee maakt.

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

Een specifieke sessie van waaruit u wilt ontvangen. Dit moet worden opgegeven voor een sessievolle wachtrij, anders moet het Geen zijn. Als u berichten van de volgende beschikbare sessie wilt ontvangen, stelt u dit in op ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str of ServiceBusSubQueue of None

Als dit is opgegeven, maakt de submap waarmee deze ontvanger verbinding maakt. Dit omvat de DEAD_LETTER en TRANSFER_DEAD_LETTER wachtrijen, die berichten bevatten die niet kunnen worden bezorgd bij een ontvanger of berichten die niet kunnen worden verwerkt. De standaardwaarde is Geen, wat betekent dat u verbinding maakt met de primaire wachtrij. Er kunnen waarden worden toegewezen uit de opsomming ServiceBusSubQueue of equivalente tekenreekswaarden 'deadletter' en 'transferdeadletter'.

receive_mode
Union[ServiceBusReceiveMode, str]

De receive_mode waarmee berichten worden opgehaald uit de entiteit. De twee opties zijn PEEK_LOCK en RECEIVE_AND_DELETE. Berichten die met PEEK_LOCK worden ontvangen, moeten binnen een bepaalde vergrendelingsperiode worden vereffend voordat ze uit de wachtrij worden verwijderd. Berichten die met RECEIVE_AND_DELETE worden ontvangen, worden onmiddellijk uit de wachtrij verwijderd en kunnen vervolgens niet worden geweigerd of opnieuw worden ontvangen als de client het bericht niet kan verwerken. De standaard receive_mode is PEEK_LOCK.

max_wait_time
Optional[float]

De time-out in seconden tussen ontvangen berichten waarna de ontvanger automatisch stopt met ontvangen. De standaardwaarde is Geen, wat betekent dat er geen time-out is. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet de time-outwaarde voor de verbinding mogelijk worden aangepast. Zie de socket_timeout optionele parameter voor meer informatie.

auto_lock_renewer
Optional[AutoLockRenewer]

Een ~azure.servicebus.AutoLockRenewer kan zodanig worden geleverd dat berichten automatisch worden geregistreerd bij ontvangst. Als de ontvanger een sessieontvanger is, is deze in plaats daarvan van toepassing op de sessie.

prefetch_count
int

Het maximum aantal berichten dat bij elke aanvraag naar de service in de cache moet worden opgeslagen. Deze instelling is alleen bedoeld voor geavanceerde afstemming van prestaties. Als u deze waarde verhoogt, worden de doorvoerprestaties van berichten verbeterd, maar is de kans groter dat berichten verlopen terwijl ze in de cache worden opgeslagen als ze niet snel genoeg worden verwerkt. De standaardwaarde is 0, wat betekent dat berichten van de service worden ontvangen en één voor één worden verwerkt. In het geval dat prefetch_count 0 is, probeert ServiceBusReceiver.receivemax_message_count (indien opgegeven) in de cache op te nemen in de aanvraag voor de service.

client_identifier
str

Een id op basis van tekenreeksen om het ontvangerexemplaar uniek te identificeren. Service Bus koppelt deze aan een aantal foutberichten voor een eenvoudigere correlatie van fouten. Als dit niet wordt opgegeven, wordt er een unieke id gegenereerd.

socket_timeout
float

De tijd in seconden dat de onderliggende socket op de verbinding moet wachten bij het verzenden en ontvangen van gegevens voordat er een time-out optreedt. De standaardwaarde is 0,2 voor TransportType.Amqp en 1 voor TransportType.AmqpOverWebsocket. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet mogelijk een groter dan de standaardwaarde worden doorgegeven.

Retourtype

Voorbeelden

Maak een nieuw exemplaar van de ServiceBusReceiver vanuit 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

Haal ServiceBusSender op voor de specifieke wachtrij.

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

Parameters

queue_name
str
Vereist

Het pad van een specifieke Service Bus-wachtrij waar de client verbinding mee maakt.

client_identifier
str

Een op tekenreeks gebaseerde id om het afzenderexemplaar uniek te identificeren. Service Bus koppelt deze aan een aantal foutberichten voor een eenvoudigere correlatie van fouten. Als dit niet wordt opgegeven, wordt er een unieke id gegenereerd.

socket_timeout
float

De tijd in seconden dat de onderliggende socket op de verbinding moet wachten bij het verzenden en ontvangen van gegevens voordat er een time-out optreedt. De standaardwaarde is 0,2 voor TransportType.Amqp en 1 voor TransportType.AmqpOverWebsocket. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet mogelijk een groter dan de standaardwaarde worden doorgegeven.

Retouren

Een afzender in de wachtrij.

Retourtype

Voorbeelden

Maak een nieuw exemplaar van de ServiceBusSender vanuit 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

Haal ServiceBusReceiver op voor het specifieke abonnement onder het onderwerp.

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

Parameters

topic_name
str
Vereist

De naam van het specifieke Service Bus-onderwerp waar de client verbinding mee maakt.

subscription_name
str
Vereist

De naam van een specifiek Service Bus-abonnement onder het opgegeven Service Bus-onderwerp.

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

Een specifieke sessie van waaruit u wilt ontvangen. Dit moet worden opgegeven voor een sessievol abonnement, anders moet het Geen zijn. Als u berichten van de volgende beschikbare sessie wilt ontvangen, stelt u dit in op ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str of ServiceBusSubQueue of None

Als dit is opgegeven, maakt de submap waarmee deze ontvanger verbinding maakt. Dit omvat de DEAD_LETTER en TRANSFER_DEAD_LETTER wachtrijen, die berichten bevatten die niet kunnen worden bezorgd bij een ontvanger of berichten die niet kunnen worden verwerkt. De standaardwaarde is Geen, wat betekent dat u verbinding maakt met de primaire wachtrij. Er kunnen waarden worden toegewezen uit de opsomming ServiceBusSubQueue of equivalente tekenreekswaarden 'deadletter' en 'transferdeadletter'.

receive_mode
Union[ServiceBusReceiveMode, str]

De receive_mode waarmee berichten worden opgehaald uit de entiteit. De twee opties zijn PEEK_LOCK en RECEIVE_AND_DELETE. Berichten die met PEEK_LOCK worden ontvangen, moeten binnen een bepaalde vergrendelingsperiode worden vereffend voordat ze uit het abonnement worden verwijderd. Berichten die met RECEIVE_AND_DELETE worden ontvangen, worden onmiddellijk verwijderd uit het abonnement en kunnen niet worden geweigerd of opnieuw worden ontvangen als de client het bericht niet kan verwerken. De standaard receive_mode is PEEK_LOCK.

max_wait_time
Optional[float]

De time-out in seconden tussen ontvangen berichten waarna de ontvanger automatisch stopt met ontvangen. De standaardwaarde is Geen, wat betekent dat er geen time-out is. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet de time-outwaarde voor de verbinding mogelijk worden aangepast. Zie de socket_timeout optionele parameter voor meer informatie.

auto_lock_renewer
Optional[AutoLockRenewer]

Een ~azure.servicebus.AutoLockRenewer kan zodanig worden geleverd dat berichten automatisch worden geregistreerd bij ontvangst. Als de ontvanger een sessieontvanger is, is deze in plaats daarvan van toepassing op de sessie.

prefetch_count
int

Het maximum aantal berichten dat bij elke aanvraag naar de service in de cache moet worden opgeslagen. Deze instelling is alleen bedoeld voor geavanceerde afstemming van prestaties. Als u deze waarde verhoogt, worden de doorvoerprestaties van berichten verbeterd, maar is de kans groter dat berichten verlopen terwijl ze in de cache worden opgeslagen als ze niet snel genoeg worden verwerkt. De standaardwaarde is 0, wat betekent dat berichten van de service worden ontvangen en één voor één worden verwerkt. In het geval dat prefetch_count 0 is, probeert ServiceBusReceiver.receivemax_message_count (indien opgegeven) in de cache op te nemen in de aanvraag voor de service.

client_identifier
str

Een id op basis van tekenreeksen om het ontvangerexemplaar uniek te identificeren. Service Bus koppelt deze aan een aantal foutberichten voor een eenvoudigere correlatie van fouten. Als dit niet wordt opgegeven, wordt er een unieke id gegenereerd.

socket_timeout
float

De tijd in seconden dat de onderliggende socket op de verbinding moet wachten bij het verzenden en ontvangen van gegevens voordat er een time-out optreedt. De standaardwaarde is 0,2 voor TransportType.Amqp en 1 voor TransportType.AmqpOverWebsocket. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet mogelijk een groter dan de standaardwaarde worden doorgegeven.

Retourtype

Voorbeelden

Maak een nieuw exemplaar van de ServiceBusReceiver vanuit 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

Download ServiceBusSender voor het specifieke onderwerp.

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

Parameters

topic_name
str
Vereist

Het pad van een specifiek Service Bus-onderwerp waar de client verbinding mee maakt.

client_identifier
str

Een op tekenreeks gebaseerde id om het afzenderexemplaar uniek te identificeren. Service Bus koppelt deze aan een aantal foutberichten voor een eenvoudigere correlatie van fouten. Als dit niet wordt opgegeven, wordt er een unieke id gegenereerd.

socket_timeout
float

De tijd in seconden dat de onderliggende socket op de verbinding moet wachten bij het verzenden en ontvangen van gegevens voordat er een time-out optreedt. De standaardwaarde is 0,2 voor TransportType.Amqp en 1 voor TransportType.AmqpOverWebsocket. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet mogelijk een groter dan de standaardwaarde worden doorgegeven.

Retouren

Een afzender van een onderwerp.

Retourtype

Voorbeelden

Maak een nieuw exemplaar van de ServiceBusSender vanuit 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)