ServiceBusClient Klasse
Die ServiceBusClient-Klasse definiert eine allgemeine Schnittstelle zum Abrufen von ServiceBusSender und ServiceBusReceiver.
- Vererbung
-
builtins.objectServiceBusClient
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
Der vollqualifizierte Hostname für den Service Bus-Namespace. Das Namespaceformat ist .servicebus.windows.net.
- credential
- TokenCredential oder AzureSasCredential oder AzureNamedKeyCredential
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
- 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
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.
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
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
Der Name eines bestimmten Service Bus-Themas, mit dem der Client eine Verbindung herstellt.
- subscription_name
- str
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.
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
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)