ServiceBusClient Klas
De Klasse ServiceBusClient definieert een interface op hoog niveau voor het ophalen van ServiceBusSender en ServiceBusReceiver.
- Overname
-
builtins.objectServiceBusClient
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
De volledig gekwalificeerde hostnaam voor de Service Bus-naamruimte. De indeling van de naamruimte is: .servicebus.windows.net.
- credential
- TokenCredential of AzureSasCredential of AzureNamedKeyCredential
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
- 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
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.
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
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
De naam van het specifieke Service Bus-onderwerp waar de client verbinding mee maakt.
- subscription_name
- str
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.
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
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)
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor