ServiceBusClient Osztály

A ServiceBusClient osztály egy magas szintű felületet határoz meg a ServiceBusSender és a ServiceBusReceiver lekéréséhez.

Öröklődés
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)

Paraméterek

fully_qualified_namespace
str
Kötelező

A Service Bus-névtér teljes gazdagépneve. A névtér formátuma: .servicebus.windows.net.

credential
TokenCredential vagy AzureSasCredential vagy AzureNamedKeyCredential
Kötelező

A hitelesítéshez használt hitelesítőadat-objektum, amely egy adott felületet implementál a jogkivonatok lekéréséhez. Elfogadja az azure-identity kódtár által létrehozott hitelesítőadat-objektumokat, valamint azokat az objektumokat, amelyek a *get_token(saját, hatókörök) metódust implementálják, vagy másik lehetőségként egy AzureSasCredential is megadható.

logging_enable
bool

Hálózati nyomkövetési naplók kimenete a naplózónak. Az alapértelmezett érték Hamis.

transport_type
TransportType

A Service Bus szolgáltatással való kommunikációhoz használt átviteli protokoll típusa. Az alapértelmezett érték a TransportType.Amqp , amely esetben az 5671-es portot használja. Ha az 5671-es port nem érhető el/blokkolva van a hálózati környezetben, akkor a TransportType.AmqpOverWebsocket használható, amely a 443-es portot használja a kommunikációhoz.

http_proxy
Dict

HTTP-proxybeállítások. Ennek a szótárnak a következő kulcsokkal kell rendelkeznie: "proxy_hostname" (str érték) és "proxy_port" (int érték). Emellett a következő kulcsok is lehetnek jelen: "felhasználónév", "jelszó".

user_agent
str

Ha meg van adva, ez a beépített felhasználói ügynök sztringje előtt lesz hozzáadva.

retry_total
int

A sikertelen művelet ismételt végrehajtására tett kísérletek teljes száma hiba esetén. Az alapértelmezett érték 3.

retry_backoff_factor
float

Az újrapróbálkozások közötti második egységben a különbözeti visszalépés belső értéke. Az alapértelmezett érték 0,8.

retry_backoff_max
float

Maximális visszalépési időköz a másodperc egységében. Az alapértelmezett érték 120.

retry_mode
str

Az újrapróbálkozási kísérletek közötti késleltetési viselkedés. A támogatott értékek "rögzítettek" vagy "exponenciálisak", ahol az alapértelmezett érték az "exponenciális".

custom_endpoint_address
str

A Service Bus szolgáltatással való kapcsolat létrehozásához használandó egyéni végpontcím, amely lehetővé teszi a hálózati kérések átirányítását a gazdakörnyezethez szükséges bármely alkalmazásátjárón vagy más útvonalon. Az alapértelmezett érték Nincs. A formátum a következő: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Ha a port nincs megadva a custom_endpoint_address, a rendszer alapértelmezés szerint a 443-at használja.

connection_verify
str

A kapcsolati végpont identitásának hitelesítéséhez használt SSL-tanúsítvány egyéni CA_BUNDLE fájljának elérési útja. Alapértelmezés szerint Nincs, ebben az esetben a certifi.where() lesz használva.

uamqp_transport
bool

Azt, hogy az uamqp kódtárat használja-e alapul szolgáló átvitelként. Az alapértelmezett érték Hamis, és a rendszer a Pure Python AMQP-kódtárat használja alapul szolgáló átvitelként.

Példák

Hozzon létre egy új ServiceBusClient-példányt.


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

Változók

fully_qualified_namespace
str

A Service Bus-névtér teljes állomásneve. A névtér formátuma: .servicebus.windows.net.

Metódusok

close

Zárja be a ServiceBus-ügyfelet. Minden ívelt feladó, fogadó és mögöttes kapcsolat le lesz állítva.

from_connection_string

Hozzon létre egy ServiceBusClientet egy kapcsolati sztring.

get_queue_receiver

A ServiceBusReceiver lekérése az adott üzenetsorhoz.

get_queue_sender

Kérje le a ServiceBusSendert az adott üzenetsorhoz.

get_subscription_receiver

Szerezze be a ServiceBusReceiver szolgáltatást a témakör adott előfizetéséhez.

get_topic_sender

Szerezze be a ServiceBusSendert az adott témakörhöz.

close

Zárja be a ServiceBus-ügyfelet. Minden ívelt feladó, fogadó és mögöttes kapcsolat le lesz állítva.

close() -> None

Válaszok

None

from_connection_string

Hozzon létre egy ServiceBusClientet egy kapcsolati sztring.

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

Paraméterek

conn_str
str
Kötelező

A Service Bus kapcsolati sztring.

logging_enable
bool

Hálózati nyomkövetési naplók kimenete a naplózónak. Az alapértelmezett érték Hamis.

transport_type
TransportType

A Service Bus szolgáltatással való kommunikációhoz használt átviteli protokoll típusa. Az alapértelmezett érték a TransportType.Amqp , amely esetben az 5671-es portot használja. Ha az 5671-es port nem érhető el/blokkolva van a hálózati környezetben, akkor a TransportType.AmqpOverWebsocket használható, amely a 443-es portot használja a kommunikációhoz.

http_proxy
Dict

HTTP-proxybeállítások. Ennek a szótárnak a következő kulcsokkal kell rendelkeznie: "proxy_hostname" (str érték) és "proxy_port" (int érték). Emellett a következő kulcsok is lehetnek jelen: "felhasználónév", "jelszó".

user_agent
str

Ha meg van adva, ez a beépített felhasználói ügynök sztringje előtt lesz hozzáadva.

retry_total
int

A sikertelen művelet ismételt végrehajtására tett kísérletek teljes száma hiba esetén. Az alapértelmezett érték 3.

retry_backoff_factor
float

Az újrapróbálkozások közötti második egységben a különbözeti visszalépés belső értéke. Az alapértelmezett érték 0,8.

retry_backoff_max
float

Maximális visszalépési időköz a másodperc egységében. Az alapértelmezett érték 120.

retry_mode
str

Az újrapróbálkozási kísérletek közötti késleltetési viselkedés. A támogatott értékek "rögzítettek" vagy "exponenciálisak", ahol az alapértelmezett érték az "exponenciális".

custom_endpoint_address
str

A Service Bus szolgáltatással való kapcsolat létrehozásához használandó egyéni végpontcím, amely lehetővé teszi a hálózati kérések átirányítását a gazdakörnyezethez szükséges bármely alkalmazásátjárón vagy más útvonalon. Az alapértelmezett érték Nincs. A formátum a következő: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Ha a port nincs megadva a custom_endpoint_address, a rendszer alapértelmezés szerint a 443-at használja.

connection_verify
str

A kapcsolati végpont identitásának hitelesítéséhez használt SSL-tanúsítvány egyéni CA_BUNDLE fájljának elérési útja. Alapértelmezés szerint Nincs, ebben az esetben a certifi.where() lesz használva.

uamqp_transport
bool

Azt, hogy az uamqp kódtárat használja-e alapul szolgáló átvitelként. Az alapértelmezett érték Hamis, és a rendszer a Pure Python AMQP-kódtárat használja alapul szolgáló átvitelként.

Visszatérési típus

Példák

Hozzon létre egy új ServiceBusClient-példányt a kapcsolati sztring.


   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

A ServiceBusReceiver lekérése az adott üzenetsorhoz.

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

Paraméterek

queue_name
str
Kötelező

Annak a Service Bus-üzenetsornak az elérési útja, amelyhez az ügyfél csatlakozik.

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

Egy adott munkamenet, amelyről fogadni kell. Ezt munkamenet-alapú üzenetsorhoz kell megadni, ellenkező esetben Nincs értékűnek kell lennie. Ha a következő elérhető munkamenetből szeretne üzeneteket fogadni, állítsa ezt ~azure.servicebus.NEXT_AVAILABLE_SESSION értékre.

sub_queue
str vagy ServiceBusSubQueue vagy None

Ha meg van adva, a fogadó alqueue-hez csatlakozik. Ez magában foglalja a DEAD_LETTER és a TRANSFER_DEAD_LETTER üzenetsorokat, olyan üzeneteket tárol, amelyeket nem lehet kézbesíteni egyetlen fogadónak sem, vagy nem feldolgozható üzeneteket. Az alapértelmezett érték Nincs, ami azt jelenti, hogy az elsődleges üzenetsorhoz csatlakozik. A ServiceBusSubQueue enumerálási vagy azzal egyenértékű "deadletter" és "transferdeadletter" sztringértékek értékei rendelhetők hozzá.

receive_mode
Union[ServiceBusReceiveMode, str]

Az a receive_mode, amellyel az üzeneteket lekéri az entitásból. A két lehetőség a PEEK_LOCK és a RECEIVE_AND_DELETE. A PEEK_LOCK fogadott üzeneteket egy adott zárolási időszakon belül kell rendezni, mielőtt eltávolítanák őket az üzenetsorból. A RECEIVE_AND_DELETE fogadott üzenetek azonnal törlődnek az üzenetsorból, és nem utasíthatók el vagy nem fogadhatók újra, ha az ügyfél nem tudja feldolgozni az üzenetet. Az alapértelmezett receive_mode PEEK_LOCK.

max_wait_time
Optional[float]

A fogadott üzenetek közötti időtúllépés másodpercben, amely után a fogadó automatikusan leáll. Az alapértelmezett érték Nincs, ami azt jelenti, hogy nincs időtúllépés. Ha a csatlakozási hibák az írási időtúllépés miatt jelentkeznek, előfordulhat, hogy módosítani kell a kapcsolat időtúllépési értékét. További részletekért tekintse meg a socket_timeout választható paramétert.

auto_lock_renewer
Optional[AutoLockRenewer]

A ~azure.servicebus.AutoLockRenewer szolgáltatással az üzenetek automatikusan regisztrálva lesznek a visszaigazoláskor. Ha a fogadó munkamenet-fogadó, akkor az a munkamenetre lesz alkalmazva.

prefetch_count
int

A szolgáltatásnak küldött kérésekkel gyorsítótárazandó üzenetek maximális száma. Ez a beállítás csak speciális teljesítményhangoláshoz használható. Ennek az értéknek a növelése javítja az üzenetek átviteli sebességét, de növeli annak esélyét, hogy az üzenetek a gyorsítótárazásuk során lejárnak, ha nem dolgozzák fel őket elég gyorsan. Az alapértelmezett érték 0, ami azt jelenti, hogy az üzenetek a szolgáltatástól érkeznek, és egyenként lesznek feldolgozva. Abban az esetben, ha prefetch_count 0, a ServiceBusReceiver.receive megpróbál gyorsítótárazni max_message_count (ha meg van adva) a szolgáltatásnak küldött kérésében.

client_identifier
str

Sztringalapú azonosító a fogadópéldány egyedi azonosításához. A Service Bus néhány hibaüzenettel társítja a hibákat a hibák könnyebb korrelációja érdekében. Ha nincs megadva, létrejön egy egyedi azonosító.

socket_timeout
float

Az az idő másodpercben, amíg a kapcsolat mögöttes szoftvercsatornájának várnia kell az adatok küldésekor és fogadásakor, mielőtt túllépi az időkorlátot. Az alapértelmezett érték a TransportType.Amqp esetében 0.2, a TransportType.AmqpOverWebsocket esetében pedig 1. Ha a kapcsolati hibák az írási időtúllépés miatt jelentkeznek, előfordulhat, hogy az alapértelmezettnél nagyobb értéket kell megadni.

Visszatérési típus

Példák

Hozzon létre egy új ServiceBusReceiver-példányt a ServiceBusClientből.


   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

Kérje le a ServiceBusSendert az adott üzenetsorhoz.

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

Paraméterek

queue_name
str
Kötelező

Annak a Service Bus-üzenetsornak az elérési útja, amelyhez az ügyfél csatlakozik.

client_identifier
str

Sztringalapú azonosító a feladó példányának egyedi azonosításához. A Service Bus néhány hibaüzenettel társítja a hibákat a hibák könnyebb korrelációja érdekében. Ha nincs megadva, létrejön egy egyedi azonosító.

socket_timeout
float

Az az idő másodpercben, amíg a kapcsolat mögöttes szoftvercsatornájának várnia kell az adatok küldésekor és fogadásakor, mielőtt túllépi az időkorlátot. Az alapértelmezett érték a TransportType.Amqp esetében 0.2, a TransportType.AmqpOverWebsocket esetében pedig 1. Ha a kapcsolati hibák az írási időtúllépés miatt jelentkeznek, előfordulhat, hogy az alapértelmezettnél nagyobb értéket kell megadni.

Válaszok

Üzenetsor feladója.

Visszatérési típus

Példák

Hozzon létre egy új ServiceBusSender-példányt a ServiceBusClientből.


   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

Szerezze be a ServiceBusReceiver szolgáltatást a témakör adott előfizetéséhez.

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

Paraméterek

topic_name
str
Kötelező

Annak a Service Bus-témakörnek a neve, amelyhez az ügyfél csatlakozik.

subscription_name
str
Kötelező

Az adott Service Bus-előfizetés neve az adott Service Bus-témakör alatt.

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

Egy adott munkamenet, amelyből fogadni szeretné. Ezt munkamenet-előfizetéshez kell megadni, ellenkező esetben Nincs értékűnek kell lennie. Ha a következő elérhető munkamenetből szeretne üzeneteket fogadni, állítsa ezt ~azure.servicebus.NEXT_AVAILABLE_SESSION értékre.

sub_queue
str vagy ServiceBusSubQueue vagy None

Ha meg van adva, a fogadó alqueue-hez csatlakozik. Ide tartoznak a DEAD_LETTER és a TRANSFER_DEAD_LETTER üzenetsorok, amelyek olyan üzeneteket tartalmaznak, amelyeket nem lehet kézbesíteni egyetlen fogadónak sem, vagy amelyek nem dolgozhatók fel. Az alapértelmezett érték a Nincs, ami azt jelenti, hogy az elsődleges üzenetsorhoz csatlakozik. A ServiceBusSubQueue enumerálási számából vagy azzal egyenértékű sztringértékekből "deadletter" és "transferdeadletter" értékeket rendelhet hozzá.

receive_mode
Union[ServiceBusReceiveMode, str]

A receive_mode, amellyel az üzeneteket lekéri az entitásból. A két lehetőség a PEEK_LOCK és a RECEIVE_AND_DELETE. A PEEK_LOCK fogadott üzeneteket egy adott zárolási időszakon belül kell rendezni, mielőtt eltávolítanák őket az előfizetésből. A RECEIVE_AND_DELETE fogadott üzenetek azonnal törlődnek az előfizetésből, és nem utasíthatók el vagy nem fogadhatók újra, ha az ügyfél nem tudja feldolgozni az üzenetet. Az alapértelmezett receive_mode a PEEK_LOCK.

max_wait_time
Optional[float]

A fogadott üzenetek közötti időkorlát másodpercben, amely után a fogadó automatikusan leáll. Az alapértelmezett érték Nincs, ami azt jelenti, hogy nincs időtúllépés. Ha a csatlakozási hibák írási időtúllépés miatt jelentkeznek, előfordulhat, hogy módosítani kell a kapcsolat időtúllépési értékét. További részletekért tekintse meg a socket_timeout opcionális paramétert.

auto_lock_renewer
Optional[AutoLockRenewer]

~azure.servicebus.AutoLockRenewer is megadható úgy, hogy az üzenetek automatikusan regisztrálva legyenek a visszaigazoláskor. Ha a fogadó munkamenet-fogadó, az a munkamenetre lesz alkalmazva.

prefetch_count
int

A szolgáltatásnak küldött minden egyes kéréshez gyorsítótárazandó üzenetek maximális száma. Ez a beállítás csak a teljesítmény speciális finomhangolásához használható. Ennek az értéknek a növelése javítja az üzenetek átviteli sebességét, de növeli annak esélyét, hogy az üzenetek lejárnak a gyorsítótárazásuk során, ha nem dolgozzák fel őket elég gyorsan. Az alapértelmezett érték 0, ami azt jelenti, hogy az üzenetek a szolgáltatástól érkeznek, és egyenként lesznek feldolgozva. Abban az esetben, ha prefetch_count 0, a ServiceBusReceiver.receive megpróbál gyorsítótárazni max_message_count (ha van ilyen) a szolgáltatásnak küldött kérésében.

client_identifier
str

Sztringalapú azonosító a fogadópéldány egyedi azonosításához. A Service Bus társítja néhány hibaüzenettel a hibák könnyebb korrelációja érdekében. Ha nincs megadva, létrejön egy egyedi azonosító.

socket_timeout
float

Az az idő másodpercben, amikor a kapcsolat mögöttes szoftvercsatornájának várnia kell az adatok küldésekor és fogadásakor, mielőtt túllépi az időkorlátot. Az alapértelmezett érték a TransportType.Amqp esetében 0,2, a TransportType.AmqpOverWebsocket esetében pedig 1. Ha a kapcsolati hibák az írási időtúllépés miatt jelentkeznek, előfordulhat, hogy az alapértelmezettnél nagyobb értéket kell megadni.

Visszatérési típus

Példák

Hozza létre a ServiceBusReceiver új példányát a ServiceBusClientből.


   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

Szerezze be a ServiceBusSendert az adott témakörhöz.

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

Paraméterek

topic_name
str
Kötelező

Annak a Service Bus-témakörnek az elérési útja, amelyhez az ügyfél csatlakozik.

client_identifier
str

Sztringalapú azonosító a küldő példány egyedi azonosításához. A Service Bus társítja néhány hibaüzenettel a hibák könnyebb korrelációja érdekében. Ha nincs megadva, létrejön egy egyedi azonosító.

socket_timeout
float

Az az idő másodpercben, amikor a kapcsolat mögöttes szoftvercsatornájának várnia kell az adatok küldésekor és fogadásakor, mielőtt túllépi az időkorlátot. Az alapértelmezett érték a TransportType.Amqp esetében 0,2, a TransportType.AmqpOverWebsocket esetében pedig 1. Ha a kapcsolati hibák az írási időtúllépés miatt jelentkeznek, előfordulhat, hogy az alapértelmezettnél nagyobb értéket kell megadni.

Válaszok

Egy témakör feladója.

Visszatérési típus

Példák

Hozza létre a ServiceBusSender új példányát a ServiceBusClientből.


   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)