Dela via


ServiceBusClient Klass

Klassen ServiceBusClient definierar ett högnivågränssnitt för att hämta ServiceBusSender och ServiceBusReceiver.

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

Parametrar

fully_qualified_namespace
str
Obligatorisk

Det fullständigt kvalificerade värdnamnet för Service Bus-namnområdet. Namnområdesformatet är: .servicebus.windows.net.

credential
AsyncTokenCredential eller AzureSasCredential eller AzureNamedKeyCredential
Obligatorisk

Autentiseringsobjektet som används för autentisering som implementerar ett visst gränssnitt för att hämta token. Den accepterar autentiseringsobjekt som genereras av azure-identity-biblioteket och objekt som implementerar metoden *get_token(self, scopes), eller alternativt kan en AzureSasCredential också anges.

logging_enable
bool

Om du vill mata ut nätverksspårningsloggar till loggaren. Standardvärdet är Falskt.

transport_type
TransportType

Den typ av transportprotokoll som ska användas för kommunikation med Service Bus-tjänsten. Standardvärdet är TransportType.Amqp i vilket fall port 5671 används. Om porten 5671 inte är tillgänglig/blockerad i nätverksmiljön kan TransportType.AmqpOverWebsocket användas i stället som använder port 443 för kommunikation.

http_proxy
Dict

HTTP-proxyinställningar. Det här måste vara en ordlista med följande nycklar: "proxy_hostname" (str-värde) och "proxy_port" (int-värde). Dessutom kan följande nycklar finnas: "användarnamn", "lösenord".

user_agent
str

Om detta anges läggs detta till framför den inbyggda användaragentsträngen.

retry_total
int

Det totala antalet försök att göra om en misslyckad åtgärd när ett fel inträffar. Standardvärdet är 3.

retry_backoff_factor
float

Delta back-off internt i den andra enheten mellan återförsök. Standardvärdet är 0,8.

retry_backoff_max
float

Maximalt backoff-intervall i den andra enheten. Standardvärdet är 120.

retry_mode
str

Fördröjningsbeteendet mellan återförsök. Värden som stöds är "fasta" eller "exponentiella", där standardvärdet är "exponentiellt".

custom_endpoint_address
str

Den anpassade slutpunktsadressen som ska användas för att upprätta en anslutning till Service Bus-tjänsten, så att nätverksbegäranden kan dirigeras via alla programgatewayer eller andra sökvägar som behövs för värdmiljön. Standardvärdet är Ingen. Formatet skulle se ut så här: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Om porten inte anges i custom_endpoint_address används som standard port 443.

connection_verify
str

Sökväg till den anpassade CA_BUNDLE-filen för SSL-certifikatet som används för att autentisera anslutningsslutpunktens identitet. Standardvärdet är Ingen i vilket fall certifi.where() kommer att användas.

uamqp_transport
bool

Om du vill använda uamqp-biblioteket som den underliggande transporten. Standardvärdet är False och Pure Python AMQP-biblioteket används som den underliggande transporten.

Exempel

Skapa en ny instans av 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()
   )

Variabler

fully_qualified_namespace
str

Det fullständigt kvalificerade värdnamnet för Service Bus-namnområdet. Namnområdesformatet är: .servicebus.windows.net.

Metoder

close

Stäng ServiceBus-klienten. Alla avsändare, mottagare och underliggande anslutningar som skapats kommer att stängas av.

from_connection_string

Skapa en ServiceBusClient från en anslutningssträng.

get_queue_receiver

Hämta ServiceBusReceiver för den specifika kön.

get_queue_sender

Hämta ServiceBusSender för den specifika kön.

get_subscription_receiver

Hämta ServiceBusReceiver för den specifika prenumerationen under ämnet.

get_topic_sender

Hämta ServiceBusSender för det specifika ämnet.

close

Stäng ServiceBus-klienten. Alla avsändare, mottagare och underliggande anslutningar som skapats kommer att stängas av.

async close() -> None

Returer

Ingen

from_connection_string

Skapa en ServiceBusClient från en anslutningssträng.

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

Parametrar

conn_str
str
Obligatorisk

Anslutningssträngen för en Service Bus.

logging_enable
bool

Om du vill mata ut nätverksspårningsloggar till loggaren. Standardvärdet är Falskt.

transport_type
TransportType

Den typ av transportprotokoll som ska användas för kommunikation med Service Bus-tjänsten. Standardvärdet är TransportType.Amqp i vilket fall port 5671 används. Om porten 5671 inte är tillgänglig/blockerad i nätverksmiljön kan TransportType.AmqpOverWebsocket användas i stället som använder port 443 för kommunikation.

http_proxy
Dict

HTTP-proxyinställningar. Det här måste vara en ordlista med följande nycklar: "proxy_hostname" (str-värde) och "proxy_port" (int-värde). Dessutom kan följande nycklar finnas: "användarnamn", "lösenord".

user_agent
str

Om detta anges läggs detta till framför den inbyggda användaragentsträngen.

retry_total
int

Det totala antalet försök att göra om en misslyckad åtgärd när ett fel inträffar. Standardvärdet är 3.

retry_backoff_factor
float

Delta back-off internt i den andra enheten mellan återförsök. Standardvärdet är 0,8.

retry_backoff_max
float

Maximalt backoff-intervall i den andra enheten. Standardvärdet är 120.

retry_mode
str

Fördröjningsbeteendet mellan återförsök. Värden som stöds är "fasta" eller "exponentiella", där standardvärdet är "exponentiellt".

custom_endpoint_address
str

Den anpassade slutpunktsadressen som ska användas för att upprätta en anslutning till Service Bus-tjänsten, så att nätverksbegäranden kan dirigeras via alla programgatewayer eller andra sökvägar som behövs för värdmiljön. Standardvärdet är Ingen. Formatet skulle se ut så här: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Om porten inte anges i custom_endpoint_address används som standard port 443.

connection_verify
str

Sökväg till den anpassade CA_BUNDLE-filen för SSL-certifikatet som används för att autentisera anslutningsslutpunktens identitet. Standardvärdet är Ingen i vilket fall certifi.where() kommer att användas.

uamqp_transport
bool

Om du vill använda uamqp-biblioteket som den underliggande transporten. Standardvärdet är False och Pure Python AMQP-biblioteket används som den underliggande transporten.

Returtyp

Exempel

Skapa en ny instans av ServiceBusClient från anslutningssträngen.


   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

Hämta ServiceBusReceiver för den specifika kön.

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

Parametrar

queue_name
str
Obligatorisk

Sökvägen till den specifika Service Bus-kö som klienten ansluter till.

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

En specifik session att ta emot från. Detta måste anges för en sessionskänslig kö, annars måste den vara Ingen. Ange ~azure.servicebus.NEXT_AVAILABLE_SESSION för att ta emot meddelanden från nästa tillgängliga session.

sub_queue
str eller ServiceBusSubQueue eller None

Om detta anges ansluter den underfråga som den här mottagaren ansluter till. Detta inkluderar DEAD_LETTER och TRANSFER_DEAD_LETTER köer, innehåller meddelanden som inte kan levereras till någon mottagare eller meddelanden som inte kan bearbetas. Standardvärdet är Ingen, vilket innebär att du ansluter till den primära kön. Kan tilldelas värden från ServiceBusSubQueue-uppräkning eller motsvarande strängvärden "deadletter" och "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

Det läge med vilket meddelanden hämtas från entiteten. De två alternativen är PEEK_LOCK och RECEIVE_AND_DELETE. Meddelanden som tas emot med PEEK_LOCK måste lösas inom en viss låsperiod innan de tas bort från kön. Meddelanden som tas emot med RECEIVE_AND_DELETE tas omedelbart bort från kön och kan inte avvisas eller tas emot igen om klienten inte kan bearbeta meddelandet. Standardläget är PEEK_LOCK.

max_wait_time
Optional[float]

Tidsgränsen i sekunder mellan mottagna meddelanden varefter mottagaren slutar ta emot automatiskt. Standardvärdet är Ingen, vilket innebär att tidsgränsen inte nås. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan tidsgränsvärdet för anslutningen behöva justeras. Mer information finns i socket_timeout valfria parametern.

auto_lock_renewer
Optional[AutoLockRenewer]

En ~azure.servicebus.aio.AutoLockRenewer kan anges så att meddelanden registreras automatiskt vid mottagandet. Om mottagaren är en sessionsmottagare gäller den i stället för sessionen.

prefetch_count
int

Det maximala antalet meddelanden som ska cachelagrats med varje begäran till tjänsten. Den här inställningen är endast avsedd för avancerad prestandajustering. Om du ökar det här värdet förbättras dataflödesprestanda för meddelanden, men det ökar risken för att meddelanden upphör att gälla medan de cachelagras om de inte bearbetas tillräckligt snabbt. Standardvärdet är 0, vilket innebär att meddelanden tas emot från tjänsten och bearbetas en i taget. Om prefetch_count är 0 försöker ServiceBusReceiver.receive cachelagrar max_message_count (om det tillhandahålls) inom sin begäran till tjänsten.

client_identifier
str

En strängbaserad identifierare som unikt identifierar mottagarinstansen. Service Bus associerar den med vissa felmeddelanden för enklare korrelation av fel. Om inget anges genereras ett unikt ID.

socket_timeout
float

Tiden i sekunder som den underliggande socketen på anslutningen ska vänta när data skickas och tas emot innan tidsgränsen nås. Standardvärdet är 0,2 för TransportType.Amqp och 1 för TransportType.AmqpOverWebsocket. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan ett större värde än standardvärdet behöva skickas in.

Returtyp

Exempel

Skapa en ny instans av ServiceBusSender från 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

Hämta ServiceBusSender för den specifika kön.

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

Parametrar

queue_name
str
Obligatorisk

Sökvägen till den specifika Service Bus-kö som klienten ansluter till.

client_identifier
str

En strängbaserad identifierare som unikt identifierar avsändarinstansen. Service Bus associerar den med vissa felmeddelanden för enklare korrelation av fel. Om inget anges genereras ett unikt ID.

socket_timeout
float

Tiden i sekunder som den underliggande socketen på anslutningen ska vänta när data skickas och tas emot innan tidsgränsen nås. Standardvärdet är 0,2 för TransportType.Amqp och 1 för TransportType.AmqpOverWebsocket. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan ett större värde än standardvärdet behöva skickas in.

Returer

En kösändare.

Returtyp

Exempel

Skapa en ny instans av ServiceBusClient från anslutningssträngen.


   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

Hämta ServiceBusReceiver för den specifika prenumerationen under ämnet.

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

Parametrar

topic_name
str
Obligatorisk

Namnet på det specifika Service Bus-ämne som klienten ansluter till.

subscription_name
str
Obligatorisk

Namnet på en specifik Service Bus-prenumeration under det angivna Service Bus-ämnet.

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

En specifik session att ta emot från. Detta måste anges för en sessionskänslig prenumeration, annars måste den vara Ingen. Ange ~azure.servicebus.NEXT_AVAILABLE_SESSION för att ta emot meddelanden från nästa tillgängliga session.

sub_queue
str eller ServiceBusSubQueue eller None

Om detta anges ansluter den underfråga som den här mottagaren ansluter till. Detta inkluderar DEAD_LETTER och TRANSFER_DEAD_LETTER köer, innehåller meddelanden som inte kan levereras till någon mottagare eller meddelanden som inte kan bearbetas. Standardvärdet är Ingen, vilket innebär att du ansluter till den primära kön. Kan tilldelas värden från ServiceBusSubQueue-uppräkning eller motsvarande strängvärden "deadletter" och "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

Det läge med vilket meddelanden hämtas från entiteten. De två alternativen är PEEK_LOCK och RECEIVE_AND_DELETE. Meddelanden som tas emot med PEEK_LOCK måste lösas inom en viss låsperiod innan de tas bort från prenumerationen. Meddelanden som tas emot med RECEIVE_AND_DELETE tas bort omedelbart från prenumerationen och kan inte avvisas eller tas emot igen om klienten inte kan bearbeta meddelandet. Standardläget är PEEK_LOCK.

max_wait_time
Optional[float]

Tidsgränsen i sekunder mellan mottagna meddelanden varefter mottagaren slutar ta emot automatiskt. Standardvärdet är Ingen, vilket innebär att tidsgränsen inte nås. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan tidsgränsvärdet för anslutningen behöva justeras. Mer information finns i socket_timeout valfria parametern.

auto_lock_renewer
Optional[AutoLockRenewer]

En ~azure.servicebus.aio.AutoLockRenewer kan anges så att meddelanden registreras automatiskt vid mottagandet. Om mottagaren är en sessionsmottagare gäller den i stället för sessionen.

prefetch_count
int

Det maximala antalet meddelanden som ska cachelagrats med varje begäran till tjänsten. Den här inställningen är endast avsedd för avancerad prestandajustering. Om du ökar det här värdet förbättras dataflödesprestanda för meddelanden, men det ökar risken för att meddelanden upphör att gälla medan de cachelagras om de inte bearbetas tillräckligt snabbt. Standardvärdet är 0, vilket innebär att meddelanden tas emot från tjänsten och bearbetas en i taget. Om prefetch_count är 0 försöker ServiceBusReceiver.receive cachelagrar max_message_count (om det tillhandahålls) inom sin begäran till tjänsten.

client_identifier
str

En strängbaserad identifierare som unikt identifierar mottagarinstansen. Service Bus associerar den med vissa felmeddelanden för enklare korrelation av fel. Om inget anges genereras ett unikt ID.

socket_timeout
float

Tiden i sekunder som den underliggande socketen på anslutningen ska vänta när data skickas och tas emot innan tidsgränsen nås. Standardvärdet är 0,2 för TransportType.Amqp och 1 för TransportType.AmqpOverWebsocket. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan ett större värde än standardvärdet behöva skickas in.

Returtyp

Exempel

Skapa en ny instans av ServiceBusReceiver från 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

Hämta ServiceBusSender för det specifika ämnet.

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

Parametrar

topic_name
str
Obligatorisk

Sökvägen till det specifika Service Bus-ämne som klienten ansluter till.

client_identifier
str

En strängbaserad identifierare som unikt identifierar avsändarinstansen. Service Bus associerar den med vissa felmeddelanden för enklare korrelation av fel. Om inget anges genereras ett unikt ID.

socket_timeout
float

Tiden i sekunder som den underliggande socketen på anslutningen ska vänta när data skickas och tas emot innan tidsgränsen nås. Standardvärdet är 0,2 för TransportType.Amqp och 1 för TransportType.AmqpOverWebsocket. Om anslutningsfel uppstår på grund av tidsgränsen för skrivning kan ett större värde än standardvärdet behöva skickas in.

Returer

En ämnessändare.

Returtyp

Exempel

Skapa en ny instans av ServiceBusSender från 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)