Freigeben über


ServiceBusClient Klasse

Die ServiceBusClient-Klasse definiert eine allgemeine Schnittstelle zum Abrufen von ServiceBusSender und ServiceBusReceiver.

Vererbung
builtins.object
ServiceBusClient

Konstruktor

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)

Parameter

fully_qualified_namespace
str
Erforderlich

Der vollqualifizierte Hostname für den Service Bus-Namespace. Das Namespaceformat ist .servicebus.windows.net.

credential
TokenCredential oder AzureSasCredential oder AzureNamedKeyCredential
Erforderlich

Das für die Authentifizierung verwendete Anmeldeinformationsobjekt, das eine bestimmte Schnittstelle zum Abrufen von Token implementiert. Es akzeptiert Anmeldeinformationenobjekte, die von der azure-identity-Bibliothek generiert wurden, und Objekte, die die *get_token(self, scopes) -Methode implementieren, oder alternativ kann auch ein AzureSasCredential-Objekt bereitgestellt werden.

logging_enable
bool

Gibt an, ob Netzwerkablaufverfolgungsprotokolle an die Protokollierung ausgegeben werden sollen. Der Standardwert ist False.

transport_type
TransportType

Der Typ des Transportprotokolls, das für die Kommunikation mit dem Service Bus-Dienst verwendet wird. Der Standardwert ist TransportType.Amqp , in diesem Fall wird Port 5671 verwendet. Wenn port 5671 in der Netzwerkumgebung nicht verfügbar/blockiert ist, könnte stattdessen TransportType.AmqpOverWebsocket verwendet werden, wobei Port 443 für die Kommunikation verwendet wird.

http_proxy
Dict

HTTP-Proxyeinstellungen. Dies muss ein Wörterbuch mit den folgenden Schlüsseln sein: "proxy_hostname" (Str-Wert) und "proxy_port" (int-Wert). Zusätzlich können die folgenden Schlüssel vorhanden sein: "Benutzername", "Kennwort".

user_agent
str

Falls angegeben, wird dies vor der integrierten Benutzer-Agent-Zeichenfolge hinzugefügt.

retry_total
int

Die Gesamtanzahl der Wiederholungsversuche eines fehlgeschlagenen Vorgangs, wenn ein Fehler auftritt. Der Standardwert ist 3.

retry_backoff_factor
float

Delta back-off intern in der Einheit der Sekunde zwischen Wiederholungen. Der Standardwert ist 0,8.

retry_backoff_max
float

Maximales Back-Off-Intervall in der Sekundeneinheit. Der Standardwert ist „120“.

retry_mode
str

Das Verzögerungsverhalten zwischen Wiederholungsversuchen. Unterstützte Werte sind "fixed" oder "exponential", wobei der Standardwert "exponentiell" ist.

custom_endpoint_address
str

Die benutzerdefinierte Endpunktadresse, die zum Herstellen einer Verbindung mit dem Service Bus-Dienst verwendet werden soll, sodass Netzwerkanforderungen über alle Anwendungsgateways oder andere Pfade weitergeleitet werden können, die für die Hostumgebung erforderlich sind. Der Standardwert ist None. Das Format würde wie "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" aussehen. Wenn port im custom_endpoint_address nicht angegeben ist, wird standardmäßig Port 443 verwendet.

connection_verify
str

Pfad zur benutzerdefinierten CA_BUNDLE Datei des SSL-Zertifikats, das zum Authentifizieren der Identität des Verbindungsendpunkts verwendet wird. Der Standardwert ist None. In diesem Fall wird certifi.where() verwendet.

uamqp_transport
bool

Gibt an, ob die uamqp-Bibliothek als zugrunde liegender Transport verwendet werden soll. Der Standardwert ist False, und die Pure Python AMQP-Bibliothek wird als zugrunde liegender Transport verwendet.

Beispiele

Erstellen Sie eine neue instance des 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()
   )

Variablen

fully_qualified_namespace
str

Der vollqualifizierte Hostname für den Service Bus-Namespace. Das Namespaceformat ist . servicebus.windows.net.

Methoden

close

Schließen Sie den ServiceBus-Client. Alle erzeugten Absender, Empfänger und zugrunde liegenden Verbindungen werden heruntergefahren.

from_connection_string

Erstellen Sie einen ServiceBusClient aus einer Verbindungszeichenfolge.

get_queue_receiver

Rufen Sie ServiceBusReceiver für die spezifische Warteschlange ab.

get_queue_sender

Rufen Sie ServiceBusSender für die spezifische Warteschlange ab.

get_subscription_receiver

Rufen Sie ServiceBusReceiver für das spezifische Abonnement unter dem Thema ab.

get_topic_sender

Rufen Sie ServiceBusSender für das spezifische Thema ab.

close

Schließen Sie den ServiceBus-Client. Alle erzeugten Absender, Empfänger und zugrunde liegenden Verbindungen werden heruntergefahren.

close() -> None

Gibt zurück

Keine

from_connection_string

Erstellen Sie einen ServiceBusClient aus einer Verbindungszeichenfolge.

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

Parameter

conn_str
str
Erforderlich

Die Verbindungszeichenfolge eines Service Bus.

logging_enable
bool

Gibt an, ob Netzwerkablaufverfolgungsprotokolle an die Protokollierung ausgegeben werden sollen. Der Standardwert ist False.

transport_type
TransportType

Der Typ des Transportprotokolls, das für die Kommunikation mit dem Service Bus-Dienst verwendet wird. Der Standardwert ist TransportType.Amqp , in diesem Fall wird Port 5671 verwendet. Wenn port 5671 in der Netzwerkumgebung nicht verfügbar/blockiert ist, könnte stattdessen TransportType.AmqpOverWebsocket verwendet werden, wobei Port 443 für die Kommunikation verwendet wird.

http_proxy
Dict

HTTP-Proxyeinstellungen. Dies muss ein Wörterbuch mit den folgenden Schlüsseln sein: "proxy_hostname" (Str-Wert) und "proxy_port" (int-Wert). Zusätzlich können die folgenden Schlüssel vorhanden sein: "Benutzername", "Kennwort".

user_agent
str

Falls angegeben, wird dies vor der integrierten Benutzer-Agent-Zeichenfolge hinzugefügt.

retry_total
int

Die Gesamtanzahl der Wiederholungsversuche eines fehlgeschlagenen Vorgangs, wenn ein Fehler auftritt. Der Standardwert ist 3.

retry_backoff_factor
float

Delta back-off intern in der Einheit der Sekunde zwischen Wiederholungen. Der Standardwert ist 0,8.

retry_backoff_max
float

Maximales Back-Off-Intervall in der Sekundeneinheit. Der Standardwert ist „120“.

retry_mode
str

Das Verzögerungsverhalten zwischen Wiederholungsversuchen. Unterstützte Werte sind "fixed" oder "exponential", wobei der Standardwert "exponentiell" ist.

custom_endpoint_address
str

Die benutzerdefinierte Endpunktadresse, die zum Herstellen einer Verbindung mit dem Service Bus-Dienst verwendet werden soll, sodass Netzwerkanforderungen über alle Anwendungsgateways oder andere Pfade weitergeleitet werden können, die für die Hostumgebung erforderlich sind. Der Standardwert ist None. Das Format würde wie "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" aussehen. Wenn port im custom_endpoint_address nicht angegeben ist, wird standardmäßig Port 443 verwendet.

connection_verify
str

Pfad zur benutzerdefinierten CA_BUNDLE Datei des SSL-Zertifikats, das zum Authentifizieren der Identität des Verbindungsendpunkts verwendet wird. Der Standardwert ist None. In diesem Fall wird certifi.where() verwendet.

uamqp_transport
bool

Gibt an, ob die uamqp-Bibliothek als zugrunde liegender Transport verwendet werden soll. Der Standardwert ist False, und die Pure Python AMQP-Bibliothek wird als zugrunde liegender Transport verwendet.

Rückgabetyp

Beispiele

Erstellen Sie eine neue instance des ServiceBusClient aus der Verbindungszeichenfolge.


   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

Rufen Sie ServiceBusReceiver für die spezifische Warteschlange ab.

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

Parameter

queue_name
str
Erforderlich

Der Pfad der spezifischen Service Bus-Warteschlange, mit der der Client eine Verbindung herstellt.

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

Eine bestimmte Sitzung, von der empfangen werden soll. Dies muss für eine sitzungsbehaftete Warteschlange angegeben werden, andernfalls muss es Keine sein. Legen Sie dies auf ~azure.servicebus.NEXT_AVAILABLE_SESSION fest, um Nachrichten aus der nächsten verfügbaren Sitzung zu empfangen.

sub_queue
str oder ServiceBusSubQueue oder None

Falls angegeben, wird die Unterqueue, mit der dieser Empfänger eine Verbindung herstellt. Dies schließt die DEAD_LETTER- und TRANSFER_DEAD_LETTER-Warteschlangen ein, enthält Nachrichten, die nicht an Empfänger oder Nachrichten übermittelt werden können, die nicht verarbeitet werden können. Der Standardwert ist Keine, d. h. stellen Sie eine Verbindung mit der primären Warteschlange her. Können Werte aus der ServiceBusSubQueue-Enumeration oder den entsprechenden Zeichenfolgenwerten "deadletter" und "transferdeadletter" zugewiesen werden.

receive_mode
Union[ServiceBusReceiveMode, str]

Der receive_mode, mit dem Nachrichten von der Entität abgerufen werden. Die beiden Optionen sind PEEK_LOCK und RECEIVE_AND_DELETE. Nachrichten, die mit PEEK_LOCK empfangen werden, müssen innerhalb eines bestimmten Sperrzeitraums abgerechnet werden, bevor sie aus der Warteschlange entfernt werden. Nachrichten, die mit RECEIVE_AND_DELETE empfangen werden, werden sofort aus der Warteschlange entfernt und können anschließend nicht abgelehnt oder erneut empfangen werden, wenn der Client die Nachricht nicht verarbeiten kann. Die Standard-receive_mode ist PEEK_LOCK.

max_wait_time
Optional[float]

Das Timeout in Sekunden zwischen empfangenen Nachrichten, nach dem der Empfänger automatisch den Empfang beendet. Der Standardwert ist None, d. h. kein Timeout. Wenn Verbindungsfehler aufgrund von Schreibzeitüberschreitungen auftreten, muss der Wert für das Verbindungstimeout möglicherweise angepasst werden. Weitere Informationen finden Sie unter socket_timeout optionalen Parameter.

auto_lock_renewer
Optional[AutoLockRenewer]

Ein ~azure.servicebus.AutoLockRenewer kann so bereitgestellt werden, dass Nachrichten beim Empfang automatisch registriert werden. Wenn der Empfänger ein Sitzungsempfänger ist, gilt er stattdessen für die Sitzung.

prefetch_count
int

Die maximale Anzahl von Nachrichten, die mit jeder Anforderung an den Dienst zwischengespeichert werden sollen. Diese Einstellung dient nur zur erweiterten Leistungsoptimierung. Wenn Sie diesen Wert erhöhen, wird die Leistung des Nachrichtendurchsatzes verbessert, aber das Risiko erhöht, dass Nachrichten ablaufen, während sie zwischengespeichert werden, wenn sie nicht schnell genug verarbeitet werden. Der Standardwert ist 0. Dies bedeutet, dass Nachrichten vom Dienst empfangen und nacheinander verarbeitet werden. Im Fall, dass prefetch_count 0 ist, versucht ServiceBusReceiver.receive , max_message_count (sofern angegeben) innerhalb seiner Anforderung an den Dienst zwischenzuspeichern.

client_identifier
str

Ein Zeichenfolgenbasierter Bezeichner zum eindeutigen Identifizieren des Empfängers instance. Service Bus ordnet sie einigen Fehlermeldungen zu, um die Korrelation von Fehlern zu erleichtern. Falls nicht angegeben, wird eine eindeutige ID generiert.

socket_timeout
float

Die Zeit in Sekunden, die der zugrunde liegende Socket für die Verbindung beim Senden und Empfangen von Daten warten sollte, bevor ein Timeout erfolgt. Der Standardwert ist 0.2 für TransportType.Amqp und 1 für TransportType.AmqpOverWebsocket. Wenn Verbindungsfehler aufgrund des Schreibzeitpunkts auftreten, muss möglicherweise ein größer als der Standardwert übergeben werden.

Rückgabetyp

Beispiele

Erstellen Sie eine neue instance des ServiceBusReceivers aus 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

Rufen Sie ServiceBusSender für die spezifische Warteschlange ab.

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

Parameter

queue_name
str
Erforderlich

Der Pfad der spezifischen Service Bus-Warteschlange, mit der der Client eine Verbindung herstellt.

client_identifier
str

Ein Zeichenfolgenbasierter Bezeichner zur eindeutigen Identifizierung des Absenders instance. Service Bus ordnet sie einigen Fehlermeldungen zu, um die Korrelation von Fehlern zu erleichtern. Falls nicht angegeben, wird eine eindeutige ID generiert.

socket_timeout
float

Die Zeit in Sekunden, die der zugrunde liegende Socket für die Verbindung beim Senden und Empfangen von Daten warten sollte, bevor ein Timeout erfolgt. Der Standardwert ist 0.2 für TransportType.Amqp und 1 für TransportType.AmqpOverWebsocket. Wenn Verbindungsfehler aufgrund eines Schreibzeitlimits auftreten, muss möglicherweise ein größer als der Standardwert übergeben werden.

Gibt zurück

Ein Warteschlangensender.

Rückgabetyp

Beispiele

Erstellen Sie über ServiceBusClient eine neue instance des ServiceBusSenders.


   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

Rufen Sie ServiceBusReceiver für das spezifische Abonnement unter dem Thema ab.

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

Parameter

topic_name
str
Erforderlich

Der Name eines bestimmten Service Bus-Themas, mit dem der Client eine Verbindung herstellt.

subscription_name
str
Erforderlich

Der Name eines bestimmten Service Bus-Abonnements unter dem angegebenen Service Bus-Thema.

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

Eine bestimmte Sitzung, von der empfangen werden soll. Dies muss für ein sitzungsbehaftetes Abonnement angegeben werden, andernfalls muss es Keine sein. Um Nachrichten aus der nächsten verfügbaren Sitzung zu empfangen, legen Sie dies auf ~azure.servicebus.NEXT_AVAILABLE_SESSION fest.

sub_queue
str oder ServiceBusSubQueue oder None

Wenn angegeben, wird die Unterwarteschlange, mit der dieser Empfänger eine Verbindung herstellt. Dies umfasst die DEAD_LETTER und TRANSFER_DEAD_LETTER Warteschlangen, enthält Nachrichten, die nicht an empfänger übermittelt werden können, oder Nachrichten, die nicht verarbeitet werden können. Der Standardwert ist Keine, d. h. stellen Sie eine Verbindung mit der primären Warteschlange her. Kann Aus der ServiceBusSubQueue-Enumeration oder den entsprechenden Zeichenfolgenwerten "deadletter" und "transferdeadletter" zugewiesen werden.

receive_mode
Union[ServiceBusReceiveMode, str]

Die receive_mode, mit der Nachrichten von der Entität abgerufen werden. Die beiden Optionen sind PEEK_LOCK und RECEIVE_AND_DELETE. Nachrichten, die mit PEEK_LOCK empfangen werden, müssen innerhalb eines bestimmten Sperrzeitraums abgerechnet werden, bevor sie aus dem Abonnement entfernt werden. Nachrichten, die mit RECEIVE_AND_DELETE empfangen werden, werden sofort aus dem Abonnement entfernt und können anschließend nicht abgelehnt oder erneut empfangen werden, wenn der Client die Nachricht nicht verarbeitet. Die Standard-receive_mode ist PEEK_LOCK.

max_wait_time
Optional[float]

Das Timeout in Sekunden zwischen empfangenen Nachrichten, nach dem der Empfänger automatisch den Empfang beendet. Der Standardwert ist None, d. h. kein Timeout. Wenn Verbindungsfehler aufgrund eines Schreibzeitlimits auftreten, muss möglicherweise der Wert für das Verbindungstimeout angepasst werden. Weitere Informationen finden Sie unter socket_timeout optionalen Parameter.

auto_lock_renewer
Optional[AutoLockRenewer]

Ein ~azure.servicebus.AutoLockRenewer kann so bereitgestellt werden, dass Nachrichten beim Empfang automatisch registriert werden. Wenn der Empfänger ein Sitzungsempfänger ist, gilt er stattdessen für die Sitzung.

prefetch_count
int

Die maximale Anzahl von Nachrichten, die mit jeder Anforderung an den Dienst zwischengespeichert werden sollen. Diese Einstellung ist nur für die erweiterte Leistungsoptimierung vorgesehen. Wenn Sie diesen Wert erhöhen, wird die Leistung des Nachrichtendurchsatzes verbessert, aber die Gefahr erhöht, dass Nachrichten ablaufen, während sie zwischengespeichert werden, wenn sie nicht schnell genug verarbeitet werden. Der Standardwert ist 0, d. h. Nachrichten werden vom Dienst empfangen und nacheinander verarbeitet. Im Fall, dass prefetch_count 0 ist, versucht ServiceBusReceiver.receive , max_message_count (sofern angegeben) innerhalb der Anforderung an den Dienst zwischenzuspeichern.

client_identifier
str

Ein Zeichenfolgenbasierter Bezeichner zum eindeutigen Identifizieren des Empfängers instance. Service Bus ordnet sie einigen Fehlermeldungen zu, um die Korrelation von Fehlern zu vereinfachen. Wenn nicht angegeben, wird eine eindeutige ID generiert.

socket_timeout
float

Die Zeit in Sekunden, die der zugrunde liegende Socket für die Verbindung beim Senden und Empfangen von Daten warten soll, bevor ein Timeout auftritt. Der Standardwert ist 0,2 für TransportType.Amqp und 1 für TransportType.AmqpOverWebsocket. Wenn Verbindungsfehler aufgrund eines Schreibzeitlimits auftreten, muss möglicherweise ein größer als der Standardwert übergeben werden.

Rückgabetyp

Beispiele

Erstellen Sie eine neue instance von ServiceBusReceiver aus 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

Rufen Sie ServiceBusSender für das spezifische Thema ab.

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

Parameter

topic_name
str
Erforderlich

Der Pfad eines bestimmten Service Bus-Themas, mit dem der Client eine Verbindung herstellt.

client_identifier
str

Ein Zeichenfolgenbasierter Bezeichner zur eindeutigen Identifizierung des Absenders instance. Service Bus ordnet sie einigen Fehlermeldungen zu, um die Korrelation von Fehlern zu vereinfachen. Wenn nicht angegeben, wird eine eindeutige ID generiert.

socket_timeout
float

Die Zeit in Sekunden, die der zugrunde liegende Socket für die Verbindung beim Senden und Empfangen von Daten warten soll, bevor ein Timeout auftritt. Der Standardwert ist 0,2 für TransportType.Amqp und 1 für TransportType.AmqpOverWebsocket. Wenn Verbindungsfehler aufgrund eines Schreibzeitlimits auftreten, muss möglicherweise ein größer als der Standardwert übergeben werden.

Gibt zurück

Ein Themensender.

Rückgabetyp

Beispiele

Erstellen Sie eine neue instance des ServiceBusSenders aus 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)