ServiceBusClient Klasa
Klasa ServiceBusClient definiuje interfejs wysokiego poziomu na potrzeby pobierania usług ServiceBusSender i ServiceBusReceiver.
- Dziedziczenie
-
builtins.objectServiceBusClient
Konstruktor
ServiceBusClient(fully_qualified_namespace: str, credential: AsyncTokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any)
Parametry
- fully_qualified_namespace
- str
W pełni kwalifikowana nazwa hosta dla przestrzeni nazw usługi Service Bus. Format przestrzeni nazw to: .servicebus.windows.net.
- credential
- AsyncTokenCredential lub AzureSasCredential lub AzureNamedKeyCredential
Obiekt poświadczeń używany do uwierzytelniania, który implementuje określony interfejs do pobierania tokenów. Akceptuje obiekty poświadczeń generowane przez bibliotekę tożsamości platformy Azure i obiekty, które implementują metodę *get_token(self, scopes) lub alternatywnie można podać klasę AzureSasCredential.
- logging_enable
- bool
Czy dane wyjściowe dzienniki śledzenia sieci do rejestratora. Wartość domyślna to Fałsz.
- transport_type
- TransportType
Typ protokołu transportowego, który będzie używany do komunikacji z usługą Service Bus. Wartość domyślna to TransportType.Amqp , w którym przypadku jest używany port 5671. Jeśli port 5671 jest niedostępny/zablokowany w środowisku sieciowym, można użyć protokołu TransportType.AmqpOverWebsocket , który używa portu 443 do komunikacji.
- http_proxy
- Dict
Ustawienia serwera proxy HTTP. Musi to być słownik z następującymi kluczami: "proxy_hostname" (wartość str) i "proxy_port" (wartość int). Ponadto mogą istnieć następujące klucze: "nazwa użytkownika", "hasło".
- user_agent
- str
Jeśli zostanie określony, zostanie to dodane przed wbudowanym ciągiem agenta użytkownika.
- retry_total
- int
Całkowita liczba prób ponownego wykonania operacji, która zakończyła się niepowodzeniem po wystąpieniu błędu. Wartość domyślna to 3.
- retry_backoff_factor
- float
Funkcja delta wycofywania wewnętrznego w jednostce sekundy między ponawianiami prób. Wartość domyślna to 0,8.
- retry_backoff_max
- float
Maksymalny interwał wycofywania w jednostce sekundy. Wartość domyślna to 120.
- retry_mode
- str
Opóźnienie między próbami ponawiania prób. Obsługiwane wartości to "fixed" lub "exponential", gdzie wartość domyślna to "wykładnik".
- custom_endpoint_address
- str
Niestandardowy adres punktu końcowego używany do nawiązywania połączenia z usługą Service Bus, umożliwiając kierowanie żądań sieciowych przez wszystkie bramy aplikacji lub inne ścieżki wymagane dla środowiska hosta. Wartość domyślna to Brak. Format będzie taki jak "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jeśli port nie zostanie określony w custom_endpoint_address, domyślnie zostanie użyty port 443.
- connection_verify
- str
Ścieżka do niestandardowego pliku CA_BUNDLE certyfikatu SSL używanego do uwierzytelniania tożsamości punktu końcowego połączenia. Wartość domyślna to None w tym przypadku certifi.where() będzie używany.
- uamqp_transport
- bool
Czy używać biblioteki uamqp jako podstawowego transportu. Wartość domyślna to False, a biblioteka Pure Python AMQP będzie używana jako podstawowy transport.
Przykłady
Utwórz nowe wystąpienie klasy ServiceBusClient.
import os
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
fully_qualified_namespace = os.environ['SERVICEBUS_FULLY_QUALIFIED_NAMESPACE']
servicebus_client = ServiceBusClient(
fully_qualified_namespace=fully_qualified_namespace,
credential=DefaultAzureCredential()
)
Zmienne
- fully_qualified_namespace
- str
W pełni kwalifikowana nazwa hosta dla przestrzeni nazw usługi Service Bus. Format przestrzeni nazw to: .servicebus.windows.net.
Metody
close |
Zamknij klienta ServiceBus. Wszystkie zduplikowane nadawcy, odbiorniki i połączenie bazowe zostaną zamknięte. |
from_connection_string |
Utwórz element ServiceBusClient na podstawie parametrów połączenia. |
get_queue_receiver |
Pobierz element ServiceBusReceiver dla określonej kolejki. |
get_queue_sender |
Pobierz usługę ServiceBusSender dla określonej kolejki. |
get_subscription_receiver |
Pobierz usługę ServiceBusReceiver dla określonej subskrypcji w temacie. |
get_topic_sender |
Pobierz usługę ServiceBusSender dla określonego tematu. |
close
Zamknij klienta ServiceBus. Wszystkie zduplikowane nadawcy, odbiorniki i połączenie bazowe zostaną zamknięte.
async close() -> None
Zwraca
Brak
from_connection_string
Utwórz element ServiceBusClient na podstawie parametrów połączenia.
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
Parametry
- logging_enable
- bool
Czy dane wyjściowe dzienniki śledzenia sieci do rejestratora. Wartość domyślna to Fałsz.
- transport_type
- TransportType
Typ protokołu transportowego, który będzie używany do komunikacji z usługą Service Bus. Wartość domyślna to TransportType.Amqp , w którym przypadku jest używany port 5671. Jeśli port 5671 jest niedostępny/zablokowany w środowisku sieciowym, można użyć protokołu TransportType.AmqpOverWebsocket , który używa portu 443 do komunikacji.
- http_proxy
- Dict
Ustawienia serwera proxy HTTP. Musi to być słownik z następującymi kluczami: "proxy_hostname" (wartość str) i "proxy_port" (wartość int). Ponadto mogą istnieć następujące klucze: "nazwa użytkownika", "hasło".
- user_agent
- str
Jeśli zostanie określony, zostanie to dodane przed wbudowanym ciągiem agenta użytkownika.
- retry_total
- int
Całkowita liczba prób ponownego wykonania operacji, która zakończyła się niepowodzeniem po wystąpieniu błędu. Wartość domyślna to 3.
- retry_backoff_factor
- float
Funkcja delta wycofywania wewnętrznego w jednostce sekundy między ponawianiami prób. Wartość domyślna to 0,8.
- retry_backoff_max
- float
Maksymalny interwał wycofywania w jednostce sekundy. Wartość domyślna to 120.
- retry_mode
- str
Opóźnienie między próbami ponawiania prób. Obsługiwane wartości to "fixed" lub "exponential", gdzie wartość domyślna to "wykładnik".
- custom_endpoint_address
- str
Niestandardowy adres punktu końcowego używany do nawiązywania połączenia z usługą Service Bus, umożliwiając kierowanie żądań sieciowych przez wszystkie bramy aplikacji lub inne ścieżki wymagane dla środowiska hosta. Wartość domyślna to Brak. Format będzie taki jak "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jeśli port nie zostanie określony w custom_endpoint_address, domyślnie zostanie użyty port 443.
- connection_verify
- str
Ścieżka do niestandardowego pliku CA_BUNDLE certyfikatu SSL używanego do uwierzytelniania tożsamości punktu końcowego połączenia. Wartość domyślna to None w tym przypadku certifi.where() będzie używany.
- uamqp_transport
- bool
Czy używać biblioteki uamqp jako podstawowego transportu. Wartość domyślna to False, a biblioteka Pure Python AMQP będzie używana jako podstawowy transport.
Typ zwracany
Przykłady
Utwórz nowe wystąpienie klasy ServiceBusClient na podstawie parametrów połączenia.
import os
from azure.servicebus.aio import ServiceBusClient
servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
get_queue_receiver
Pobierz element ServiceBusReceiver dla określonej kolejki.
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
Parametry
- queue_name
- str
Ścieżka określonej kolejki usługi Service Bus, z którą nawiązuje połączenie klient.
Określona sesja, z której ma zostać odebrana. Należy to określić dla kolejki sesji, w przeciwnym razie musi to być Wartość Brak. Aby otrzymywać komunikaty z następnej dostępnej sesji, ustaw tę wartość na ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str lub ServiceBusSubQueue lub None
Jeśli zostanie określona, pod kolejka tego odbiornika będzie się łączyć. Obejmuje to kolejki DEAD_LETTER i TRANSFER_DEAD_LETTER, które nie mogą być dostarczane do żadnego odbiorcy ani komunikatów, których nie można przetworzyć. Wartość domyślna to Brak, co oznacza połączenie z kolejką podstawową. Można przypisać wartości z wyliczenia ServiceBusSubQueue lub równoważnych wartości ciągów "deadletter" i "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Tryb pobierania komunikatów z jednostki. Dwie opcje są PEEK_LOCK i RECEIVE_AND_DELETE. Komunikaty odebrane za pomocą PEEK_LOCK muszą zostać rozliczone w danym okresie blokady, zanim zostaną usunięte z kolejki. Komunikaty odebrane za pomocą RECEIVE_AND_DELETE zostaną natychmiast usunięte z kolejki i nie mogą zostać następnie odrzucone lub ponownie odebrane, jeśli klient nie przetworzy komunikatu. Tryb domyślny to PEEK_LOCK.
Limit czasu w sekundach między odebranych komunikatów, po którym odbiorca automatycznie przestanie odbierać. Wartość domyślna to Brak, co oznacza brak limitu czasu. Jeśli występują błędy połączenia z powodu przekroczenia limitu czasu zapisu, może być konieczne dostosowanie wartości limitu czasu połączenia. Aby uzyskać więcej informacji, zobacz socket_timeout opcjonalny parametr.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Można podać element ~azure.servicebus.aio.AutoLockRenewer, tak aby komunikaty były automatycznie rejestrowane po otrzymaniu. Jeśli odbiornik jest odbiornikiem sesji, będzie on zamiast tego stosowany do sesji.
- prefetch_count
- int
Maksymalna liczba komunikatów do buforowania przy użyciu każdego żądania do usługi. To ustawienie jest przeznaczone tylko do zaawansowanego dostrajania wydajności. Zwiększenie tej wartości poprawi wydajność przepływności komunikatów, ale zwiększy prawdopodobieństwo wygaśnięcia komunikatów podczas ich buforowania, jeśli nie są one wystarczająco szybko przetwarzane. Wartość domyślna to 0, co oznacza, że komunikaty będą odbierane z usługi i przetwarzane pojedynczo. W przypadku prefetch_count 0 usługa ServiceBusReceiver.receive spróbuje buforować max_message_count (jeśli podano) w żądaniu usługi.
- client_identifier
- str
Identyfikator oparty na ciągu w celu unikatowego zidentyfikowania wystąpienia odbiorcy. Usługa Service Bus skojarzy ją z niektórymi komunikatami o błędach, aby ułatwić korelację błędów. Jeśli nie zostanie określony, zostanie wygenerowany unikatowy identyfikator.
- socket_timeout
- float
Czas w sekundach, w którym bazowe gniazdo w połączeniu powinno czekać podczas wysyłania i odbierania danych przed przekroczeniem limitu czasu. Wartość domyślna to 0,2 dla elementu TransportType.Amqp i 1 dla elementu TransportType.AmqpOverWebsocket. Jeśli występują błędy połączenia z powodu limitu czasu zapisu, może być konieczne przekazanie większej niż wartość domyślna.
Typ zwracany
Przykłady
Utwórz nowe wystąpienie elementu ServiceBusSender z poziomu klasy ServiceBusClient.
import os
from azure.servicebus.aio 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)
async with servicebus_client:
queue_receiver = servicebus_client.get_queue_receiver(queue_name=queue_name)
get_queue_sender
Pobierz usługę ServiceBusSender dla określonej kolejki.
get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender
Parametry
- queue_name
- str
Ścieżka określonej kolejki usługi Service Bus, z którą nawiązuje połączenie klient.
- client_identifier
- str
Identyfikator oparty na ciągu w celu unikatowego zidentyfikowania wystąpienia nadawcy. Usługa Service Bus skojarzy ją z niektórymi komunikatami o błędach, aby ułatwić korelację błędów. Jeśli nie zostanie określony, zostanie wygenerowany unikatowy identyfikator.
- socket_timeout
- float
Czas w sekundach, w którym bazowe gniazdo w połączeniu powinno czekać podczas wysyłania i odbierania danych przed przekroczeniem limitu czasu. Wartość domyślna to 0,2 dla elementu TransportType.Amqp i 1 dla elementu TransportType.AmqpOverWebsocket. Jeśli występują błędy połączenia z powodu limitu czasu zapisu, może być konieczne przekazanie większej niż wartość domyślna.
Zwraca
Nadawca kolejki.
Typ zwracany
Przykłady
Utwórz nowe wystąpienie klasy ServiceBusClient na podstawie parametrów połączenia.
import os
from azure.servicebus.aio 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)
async with servicebus_client:
queue_sender = servicebus_client.get_queue_sender(queue_name=queue_name)
get_subscription_receiver
Pobierz usługę ServiceBusReceiver dla określonej subskrypcji w temacie.
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
Parametry
- topic_name
- str
Nazwa określonego tematu usługi Service Bus, z którymi nawiązuje połączenie klient.
- subscription_name
- str
Nazwa określonej subskrypcji usługi Service Bus w ramach danego tematu usługi Service Bus.
Określona sesja, z której ma zostać odebrana. Należy to określić dla subskrypcji sesji, w przeciwnym razie musi to być Wartość Brak. Aby otrzymywać komunikaty z następnej dostępnej sesji, ustaw tę wartość na ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str lub ServiceBusSubQueue lub None
Jeśli zostanie określona, pod kolejka tego odbiornika będzie się łączyć. Obejmuje to kolejki DEAD_LETTER i TRANSFER_DEAD_LETTER, które nie mogą być dostarczane do żadnego odbiorcy ani komunikatów, których nie można przetworzyć. Wartość domyślna to Brak, co oznacza połączenie z kolejką podstawową. Można przypisać wartości z wyliczenia ServiceBusSubQueue lub równoważnych wartości ciągów "deadletter" i "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Tryb pobierania komunikatów z jednostki. Dwie opcje są PEEK_LOCK i RECEIVE_AND_DELETE. Komunikaty odebrane za pomocą PEEK_LOCK muszą zostać rozliczone w danym okresie blokady, zanim zostaną usunięte z subskrypcji. Komunikaty odebrane za pomocą RECEIVE_AND_DELETE zostaną natychmiast usunięte z subskrypcji i nie mogą zostać następnie odrzucone lub ponownie odebrane, jeśli klient nie przetworzy komunikatu. Tryb domyślny to PEEK_LOCK.
Limit czasu w sekundach między odebranych komunikatów, po którym odbiorca automatycznie przestanie odbierać. Wartość domyślna to Brak, co oznacza brak limitu czasu. Jeśli występują błędy połączenia z powodu przekroczenia limitu czasu zapisu, może być konieczne dostosowanie wartości limitu czasu połączenia. Aby uzyskać więcej informacji, zobacz socket_timeout opcjonalny parametr.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Można podać element ~azure.servicebus.aio.AutoLockRenewer, tak aby komunikaty były automatycznie rejestrowane po otrzymaniu. Jeśli odbiornik jest odbiornikiem sesji, będzie on zamiast tego stosowany do sesji.
- prefetch_count
- int
Maksymalna liczba komunikatów do buforowania przy użyciu każdego żądania do usługi. To ustawienie jest przeznaczone tylko do zaawansowanego dostrajania wydajności. Zwiększenie tej wartości poprawi wydajność przepływności komunikatów, ale zwiększy prawdopodobieństwo wygaśnięcia komunikatów podczas ich buforowania, jeśli nie są one wystarczająco szybko przetwarzane. Wartość domyślna to 0, co oznacza, że komunikaty będą odbierane z usługi i przetwarzane pojedynczo. W przypadku prefetch_count 0 usługa ServiceBusReceiver.receive spróbuje buforować max_message_count (jeśli podano) w żądaniu usługi.
- client_identifier
- str
Identyfikator oparty na ciągu w celu unikatowego zidentyfikowania wystąpienia odbiorcy. Usługa Service Bus skojarzy ją z niektórymi komunikatami o błędach, aby ułatwić korelację błędów. Jeśli nie zostanie określony, zostanie wygenerowany unikatowy identyfikator.
- socket_timeout
- float
Czas w sekundach, w którym bazowe gniazdo w połączeniu powinno czekać podczas wysyłania i odbierania danych przed przekroczeniem limitu czasu. Wartość domyślna to 0,2 dla elementu TransportType.Amqp i 1 dla elementu TransportType.AmqpOverWebsocket. Jeśli występują błędy połączenia z powodu limitu czasu zapisu, może być konieczne przekazanie większej niż wartość domyślna.
Typ zwracany
Przykłady
Utwórz nowe wystąpienie klasy ServiceBusReceiver z poziomu klasy ServiceBusClient.
import os
from azure.servicebus.aio 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)
async with servicebus_client:
subscription_receiver = servicebus_client.get_subscription_receiver(
topic_name=topic_name,
subscription_name=subscription_name,
)
get_topic_sender
Pobierz usługę ServiceBusSender dla określonego tematu.
get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender
Parametry
- topic_name
- str
Ścieżka określonego tematu usługi Service Bus, z którą nawiązuje połączenie klient.
- client_identifier
- str
Identyfikator oparty na ciągu w celu unikatowego zidentyfikowania wystąpienia nadawcy. Usługa Service Bus skojarzy ją z niektórymi komunikatami o błędach, aby ułatwić korelację błędów. Jeśli nie zostanie określony, zostanie wygenerowany unikatowy identyfikator.
- socket_timeout
- float
Czas w sekundach, w którym bazowe gniazdo w połączeniu powinno czekać podczas wysyłania i odbierania danych przed przekroczeniem limitu czasu. Wartość domyślna to 0,2 dla elementu TransportType.Amqp i 1 dla elementu TransportType.AmqpOverWebsocket. Jeśli występują błędy połączenia z powodu limitu czasu zapisu, może być konieczne przekazanie większej niż wartość domyślna.
Zwraca
Nadawca tematu.
Typ zwracany
Przykłady
Utwórz nowe wystąpienie elementu ServiceBusSender z poziomu klasy ServiceBusClient.
import os
from azure.servicebus.aio 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)
async with servicebus_client:
topic_sender = servicebus_client.get_topic_sender(topic_name=topic_name)