ServiceBusClient Třída
Třída ServiceBusClient definuje rozhraní vysoké úrovně pro získání ServiceBusSender a ServiceBusReceiver.
- Dědičnost
-
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)
Parametry
- fully_qualified_namespace
- str
Plně kvalifikovaný název hostitele pro obor názvů služby Service Bus. Formát oboru názvů je .servicebus.windows.net.
- credential
- TokenCredential nebo AzureSasCredential nebo AzureNamedKeyCredential
Objekt přihlašovacích údajů používaný k ověřování, který implementuje konkrétní rozhraní pro získávání tokenů. Přijímá objekty přihlašovacích údajů vygenerované knihovnou azure-identity a objekty, které implementují metodu *get_token(self, scopes), případně je možné poskytnout také AzureSasCredential.
- logging_enable
- bool
Zda se mají protokoly trasování sítě vypisovat do protokolovacího nástroje. Výchozí hodnota je False.
- transport_type
- TransportType
Typ přenosového protokolu, který se použije pro komunikaci se službou Service Bus. Výchozí hodnota je TransportType.Amqp , v takovém případě se používá port 5671. Pokud je port 5671 v síťovém prostředí nedostupný nebo blokovaný, místo toho by se mohl použít transportType.AmqpOverWebsocket , který používá pro komunikaci port 443.
- http_proxy
- Dict
Nastavení proxy serveru HTTP. Musí se jednat o slovník s následujícími klíči: "proxy_hostname" (hodnota str) a "proxy_port" (hodnota int). Kromě toho můžou být k dispozici také následující klíče: uživatelské jméno, heslo.
- user_agent
- str
Pokud je zadaný, přidá se před předdefinovaný řetězec uživatelského agenta.
- retry_total
- int
Celkový počet pokusů o opakování neúspěšné operace při výskytu chyby Výchozí hodnota je 3.
- retry_backoff_factor
- float
Delta back-off interně v jednotce sekundy mezi opakovanými pokusy. Výchozí hodnota je 0,8.
- retry_backoff_max
- float
Maximální interval back-off v jednotce sekundy. Výchozí hodnota je 120.
- retry_mode
- str
Chování zpoždění mezi opakovanými pokusy. Podporované hodnoty jsou "pevné" nebo "exponenciální", kde výchozí hodnota je "exponenciální".
- custom_endpoint_address
- str
Adresa vlastního koncového bodu, která se má použít k navázání připojení ke službě Service Bus a umožňuje směrování síťových požadavků přes všechny aplikační brány nebo jiné cesty potřebné pro hostitelské prostředí. Výchozí hodnota je Žádný. Formát bude vypadat takto: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Pokud port není v custom_endpoint_address zadaný, použije se ve výchozím nastavení port 443.
- connection_verify
- str
Cesta k vlastnímu souboru CA_BUNDLE certifikátu SSL, který se používá k ověření identity koncového bodu připojení. Výchozí hodnota je Žádná, v takovém případě se použije certifi.where().
- uamqp_transport
- bool
Zda se má jako podkladový přenos použít knihovna uamqp . Výchozí hodnota je False a jako podkladový přenos se použije knihovna AMQP v Čistém Pythonu.
Příklady
Vytvořte novou instanci 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()
)
Proměnné
- fully_qualified_namespace
- str
Plně kvalifikovaný název hostitele pro obor názvů služby Service Bus. Formát oboru názvů je .servicebus.windows.net.
Metody
close |
Zavřete klienta ServiceBus. Všichni původní odesílatelé, příjemci a základní připojení budou vypnuti. |
from_connection_string |
Vytvořte ServiceBusClient z připojovacího řetězce. |
get_queue_receiver |
Získejte ServiceBusReceiver pro konkrétní frontu. |
get_queue_sender |
Získejte ServiceBusSender pro konkrétní frontu. |
get_subscription_receiver |
Získejte ServiceBusReceiver pro konkrétní předplatné v rámci tématu. |
get_topic_sender |
Získejte ServiceBusSender pro konkrétní téma. |
close
Zavřete klienta ServiceBus. Všichni původní odesílatelé, příjemci a základní připojení budou vypnuti.
close() -> None
Návraty
Žádné
from_connection_string
Vytvořte ServiceBusClient z připojovacího řetězce.
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
Zda se mají protokoly trasování sítě vypisovat do protokolovacího nástroje. Výchozí hodnota je False.
- transport_type
- TransportType
Typ přenosového protokolu, který se použije pro komunikaci se službou Service Bus. Výchozí hodnota je TransportType.Amqp , v takovém případě se používá port 5671. Pokud je port 5671 v síťovém prostředí nedostupný nebo blokovaný, místo toho by se mohl použít transportType.AmqpOverWebsocket , který používá pro komunikaci port 443.
- http_proxy
- Dict
Nastavení proxy serveru HTTP. Musí se jednat o slovník s následujícími klíči: "proxy_hostname" (hodnota str) a "proxy_port" (hodnota int). Kromě toho můžou být k dispozici také následující klíče: uživatelské jméno, heslo.
- user_agent
- str
Pokud je zadaný, přidá se před předdefinovaný řetězec uživatelského agenta.
- retry_total
- int
Celkový počet pokusů o opakování neúspěšné operace při výskytu chyby Výchozí hodnota je 3.
- retry_backoff_factor
- float
Delta back-off interně v jednotce sekundy mezi opakovanými pokusy. Výchozí hodnota je 0,8.
- retry_backoff_max
- float
Maximální interval back-off v jednotce sekundy. Výchozí hodnota je 120.
- retry_mode
- str
Chování zpoždění mezi opakovanými pokusy. Podporované hodnoty jsou pevné nebo exponenciální, kde výchozí hodnota je exponenciální.
- custom_endpoint_address
- str
Adresa vlastního koncového bodu, která se má použít k navázání připojení ke službě Service Bus a umožňuje směrování síťových požadavků přes všechny aplikační brány nebo jiné cesty potřebné pro hostitelské prostředí. Výchozí hodnota je Žádný. Formát bude vypadat takto: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Pokud port není v custom_endpoint_address zadaný, použije se ve výchozím nastavení port 443.
- connection_verify
- str
Cesta k vlastnímu souboru CA_BUNDLE certifikátu SSL, který se používá k ověření identity koncového bodu připojení. Výchozí hodnota je Žádná, v takovém případě se použije certifi.where().
- uamqp_transport
- bool
Zda se má jako podkladový přenos použít knihovna uamqp . Výchozí hodnota je False a jako podkladový přenos se použije knihovna AMQP v Čistém Pythonu.
Návratový typ
Příklady
Vytvořte novou instanci ServiceBusClient z připojovacího řetězce.
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
Získejte ServiceBusReceiver pro konkrétní frontu.
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
- session_id
- str nebo <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Konkrétní relace, ze které se má přijímat. Tato hodnota musí být zadána pro frontu v relaci, jinak musí být žádná. Pokud chcete přijímat zprávy z další dostupné relace, nastavte ji na ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str nebo ServiceBusSubQueue nebo None
Pokud je tato možnost zadána, bude se tento příjemce připojovat k podcedí. To zahrnuje DEAD_LETTER a TRANSFER_DEAD_LETTER fronty, obsahují zprávy, které nelze doručit příjemci nebo zprávy, které nelze zpracovat. Výchozí hodnota je Žádný, což znamená připojení k primární frontě. Lze přiřadit hodnoty z výčtu ServiceBusSubQueue nebo ekvivalentních řetězcových hodnot "deadletter" a "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Receive_mode, pomocí kterého se budou zprávy z entity načítat. Tyto dvě možnosti jsou PEEK_LOCK a RECEIVE_AND_DELETE. Zprávy přijaté s PEEK_LOCK musí být vyřešeny v daném období uzamčení, než se odeberou z fronty. Zprávy přijaté s RECEIVE_AND_DELETE budou okamžitě odebrány z fronty a nelze je následně odmítnout ani znovu přijmout, pokud klient zprávu nezpracuje. Výchozí receive_mode je PEEK_LOCK.
Časový limit v sekundách mezi přijatými zprávami, po kterém příjemce automaticky přestane přijímat. Výchozí hodnota je Žádný, což znamená žádný časový limit. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba upravit hodnotu časového limitu připojení. Další podrobnosti najdete v socket_timeout volitelném parametru.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Je možné poskytnout ~azure.servicebus.AutoLockRenewer tak, aby se zprávy automaticky zaregistrovaly při přijetí. Pokud je příjemcem relace, použije se místo toho na relaci.
- prefetch_count
- int
Maximální počet zpráv, které se mají ukládat do mezipaměti s jednotlivými požadavky na službu. Toto nastavení je určené pouze pro pokročilé ladění výkonu. Zvýšením této hodnoty se zvýší výkon propustnosti zpráv, ale zvýší se pravděpodobnost, že platnost zpráv vyprší, když se uloží do mezipaměti, pokud se nezpracují dostatečně rychle. Výchozí hodnota je 0, což znamená, že zprávy se budou přijímat ze služby a zpracovávat je po jednom. V případě prefetch_count 0 se ServiceBusReceiver.receive pokusí uložit do mezipaměti max_message_count (pokud je k dispozici) v rámci své žádosti do služby.
- client_identifier
- str
Identifikátor založený na řetězci pro jedinečnou identifikaci instance příjemce. Service Bus ji přidruží k některým chybovým zprávm, aby se usnadnila korelace chyb. Pokud není zadáno, vygeneruje se jedinečné ID.
- socket_timeout
- float
Čas v sekundách, kdy by měl podkladový soket na připojení čekat při odesílání a příjmu dat před vypršením časového limitu. Výchozí hodnota je 0,2 pro TransportType.Amqp a 1 pro TransportType.AmqpOverWebsocket. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba předat větší než výchozí hodnotu.
Návratový typ
Příklady
Vytvořte novou instanci ServiceBusReceiver z 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
Získejte ServiceBusSender pro konkrétní frontu.
get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender
Parametry
- client_identifier
- str
Identifikátor založený na řetězci pro jedinečnou identifikaci instance odesílatele. Service Bus ji přidruží k některým chybovým zprávm, aby se usnadnila korelace chyb. Pokud není zadáno, vygeneruje se jedinečné ID.
- socket_timeout
- float
Čas v sekundách, kdy by měl podkladový soket na připojení čekat při odesílání a příjmu dat před vypršením časového limitu. Výchozí hodnota je 0,2 pro TransportType.Amqp a 1 pro TransportType.AmqpOverWebsocket. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba předat větší než výchozí hodnotu.
Návraty
Odesílatel fronty.
Návratový typ
Příklady
Vytvořte novou instanci ServiceBusSender z 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
Získejte ServiceBusReceiver pro konkrétní předplatné v rámci tématu.
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
Název konkrétního tématu služby Service Bus, ke které se klient připojuje.
- subscription_name
- str
Název konkrétního předplatného služby Service Bus v daném tématu služby Service Bus.
- session_id
- str nebo <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Konkrétní relace, ze které se má přijímat. Tato hodnota musí být zadána pro předplatné s režimem relace, jinak musí být žádná. Pokud chcete přijímat zprávy z další dostupné relace, nastavte ji na ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str nebo ServiceBusSubQueue nebo None
Pokud je tato možnost zadána, bude se tento příjemce připojovat k podcedí. To zahrnuje DEAD_LETTER a TRANSFER_DEAD_LETTER fronty, obsahují zprávy, které nelze doručit příjemci nebo zprávy, které nelze zpracovat. Výchozí hodnota je Žádný, což znamená připojení k primární frontě. Lze přiřadit hodnoty z výčtu ServiceBusSubQueue nebo ekvivalentních řetězcových hodnot "deadletter" a "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
Receive_mode, pomocí kterého se budou zprávy z entity načítat. Tyto dvě možnosti jsou PEEK_LOCK a RECEIVE_AND_DELETE. Zprávy přijaté s PEEK_LOCK musí být vyřešeny v daném období uzamčení, než se odeberou z předplatného. Zprávy přijaté s RECEIVE_AND_DELETE budou okamžitě odebrány z odběru a nelze je následně odmítnout ani znovu přijmout, pokud klient zprávu nezpracuje. Výchozí receive_mode je PEEK_LOCK.
Časový limit v sekundách mezi přijatými zprávami, po kterém příjemce automaticky přestane přijímat. Výchozí hodnota je Žádný, což znamená žádný časový limit. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba upravit hodnotu časového limitu připojení. Další podrobnosti najdete v socket_timeout volitelném parametru.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Je možné poskytnout ~azure.servicebus.AutoLockRenewer tak, aby se zprávy automaticky zaregistrovaly při přijetí. Pokud je příjemcem relace, použije se místo toho na relaci.
- prefetch_count
- int
Maximální počet zpráv, které se mají ukládat do mezipaměti s jednotlivými požadavky na službu. Toto nastavení je určené pouze pro pokročilé ladění výkonu. Zvýšením této hodnoty se zvýší výkon propustnosti zpráv, ale zvýší se pravděpodobnost, že platnost zpráv vyprší, když se uloží do mezipaměti, pokud se nezpracují dostatečně rychle. Výchozí hodnota je 0, což znamená, že zprávy se budou přijímat ze služby a zpracovávat je po jednom. V případě prefetch_count 0 se ServiceBusReceiver.receive pokusí uložit do mezipaměti max_message_count (pokud je k dispozici) v rámci své žádosti do služby.
- client_identifier
- str
Identifikátor založený na řetězci pro jedinečnou identifikaci instance příjemce. Service Bus ji přidruží k některým chybovým zprávm, aby se usnadnila korelace chyb. Pokud není zadáno, vygeneruje se jedinečné ID.
- socket_timeout
- float
Čas v sekundách, kdy by měl podkladový soket na připojení čekat při odesílání a příjmu dat před vypršením časového limitu. Výchozí hodnota je 0,2 pro TransportType.Amqp a 1 pro TransportType.AmqpOverWebsocket. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba předat větší než výchozí hodnotu.
Návratový typ
Příklady
Vytvořte novou instanci ServiceBusReceiver z 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
Získejte ServiceBusSender pro konkrétní téma.
get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender
Parametry
- topic_name
- str
Cesta konkrétního tématu služby Service Bus, ke které se klient připojuje.
- client_identifier
- str
Identifikátor založený na řetězci pro jedinečnou identifikaci instance odesílatele. Service Bus ji přidruží k některým chybovým zprávm, aby se usnadnila korelace chyb. Pokud není zadáno, vygeneruje se jedinečné ID.
- socket_timeout
- float
Čas v sekundách, kdy by měl podkladový soket na připojení čekat při odesílání a příjmu dat před vypršením časového limitu. Výchozí hodnota je 0,2 pro TransportType.Amqp a 1 pro TransportType.AmqpOverWebsocket. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba předat větší než výchozí hodnotu.
Návraty
Odesílatel tématu.
Návratový typ
Příklady
Vytvořte novou instanci ServiceBusSender z 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)