ServiceBusClient Osztály
A ServiceBusClient osztály egy magas szintű felületet határoz meg a ServiceBusSender és a ServiceBusReceiver beszerzéséhez.
- Öröklődés
-
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)
Paraméterek
- fully_qualified_namespace
- str
A Service Bus-névtér teljes állomásneve. A névtér formátuma: .servicebus.windows.net.
- credential
- AsyncTokenCredential vagy AzureSasCredential vagy AzureNamedKeyCredential
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ő objektumokat és az *get_token(saját, hatókörök) metódust megvalósító objektumokat, 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/le van tiltva a hálózati környezetben, a TransportType.AmqpOverWebsocket használható helyette, 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ásodik egységben. 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 elérési úton. Az alapértelmezett érték a 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. Az alapértelmezett érték Nincs, ebben az esetben a certifi.where() lesz használva.
- uamqp_transport
- bool
Azt határozza meg, 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
Hozza létre a ServiceBusClient új példányát.
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()
)
Változók
- fully_qualified_namespace
- str
A Service Bus-névtér teljes gazdagépneve. A névtér formátuma: .servicebus.windows.net.
Metódusok
close |
Zárja be a ServiceBus-ügyfelet. Az összes ívott feladó, fogadó és mögöttes kapcsolat le lesz állítva. |
from_connection_string |
ServiceBusClient létrehozása 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 az adott előfizetéshez a témakör alatt. |
get_topic_sender |
Szerezze be a ServiceBusSendert az adott témakörhöz. |
close
Zárja be a ServiceBus-ügyfelet. Az összes ívott feladó, fogadó és mögöttes kapcsolat le lesz állítva.
async close() -> None
Válaszok
None
from_connection_string
ServiceBusClient létrehozása 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
- 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/le van tiltva a hálózati környezetben, a TransportType.AmqpOverWebsocket használható helyette, 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ásodik egységben. 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 elérési úton. Az alapértelmezett érték a 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. Az alapértelmezett érték Nincs, ebben az esetben a certifi.where() lesz használva.
- uamqp_transport
- bool
Azt határozza meg, 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.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
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
Annak a Service Bus-üzenetsornak az elérési útja, amelyhez az ügyfél csatlakozik.
Egy adott munkamenet, amelyből fogadni szeretné. Ezt egy munkamenet-alapú üzenetsorhoz kell megadni, ellenkező esetben a Nincs értéknek 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]
Az a mód, amellyel az üzenetek le lesznek kérve 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 mód a PEEK_LOCK.
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.aio.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 ServiceBusSender új példányát a ServiceBusClientből.
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
Kérje le a ServiceBusSendert az adott üzenetsorhoz.
get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender
Paraméterek
- queue_name
- str
Annak a Service Bus-üzenetsornak 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
Üzenetsor feladója.
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.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
Szerezze be a ServiceBusReceiver szolgáltatást az adott előfizetéshez a témakör alatt.
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
- subscription_name
- str
Az adott Service Bus-előfizetés neve az adott Service Bus-témakör alatt.
Egy adott munkamenet, amelyről fogadni kell. 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. 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 mód, amellyel az üzenetek le lesznek kérve 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 mód a PEEK_LOCK.
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]
~azure.servicebus.aio.AutoLockRenewer is megadható úgy, hogy az üzenetek automatikusan regisztrálva legyenek 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.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
Szerezze be a ServiceBusSendert az adott témakörhöz.
get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender
Paraméterek
- topic_name
- str
Annak a Service Bus-témakörnek 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
Egy témakör 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.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)
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: