Udostępnij za pośrednictwem


ServiceBusClient Klasa

Klasa ServiceBusClient definiuje interfejs wysokiego poziomu na potrzeby pobierania usług ServiceBusSender i ServiceBusReceiver.

Dziedziczenie
builtins.object
ServiceBusClient

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
Wymagane

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
Wymagane

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

conn_str
str
Wymagane

Parametry połączenia usługi Service Bus.

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
Wymagane

Ścieżka określonej kolejki usługi Service Bus, z którą nawiązuje połączenie klient.

session_id
str lub <xref:azure.servicebus.NEXT_AVAILABLE_SESSION> lub None

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.

max_wait_time
Optional[float]

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
Wymagane

Ś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
Wymagane

Nazwa określonego tematu usługi Service Bus, z którymi nawiązuje połączenie klient.

subscription_name
str
Wymagane

Nazwa określonej subskrypcji usługi Service Bus w ramach danego tematu usługi Service Bus.

session_id
str lub <xref:azure.servicebus.NEXT_AVAILABLE_SESSION> lub None

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.

max_wait_time
Optional[float]

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
Wymagane

Ś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)