Share 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: TokenCredential | 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
TokenCredential eller AzureSasCredential eller AzureNamedKeyCredential
Obligatorisk

Det autentiseringsobjekt 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å tillhandahållas.

logging_enable
bool

Om nätverksspårningsloggar ska matas ut till loggarna. Standardvärdet är Falskt.

transport_type
TransportType

Den typ av transportprotokoll som ska användas för kommunikation med Service Bus-tjänsten. Standard är TransportType.Amqp i vilket fall port 5671 används. Om port 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. Detta 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 också 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 back-off-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 vara som "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Om porten inte anges i custom_endpoint_address används port 443 som standard.

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. Standard ä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 underliggande transport.

Exempel

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

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 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 kommer att stängas av.

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 nätverksspårningsloggar ska matas ut till loggarna. Standardvärdet är Falskt.

transport_type
TransportType

Den typ av transportprotokoll som ska användas för kommunikation med Service Bus-tjänsten. Standard är TransportType.Amqp i vilket fall port 5671 används. Om port 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. Detta 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 också 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 back-off-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 vara som "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Om porten inte anges i custom_endpoint_address används port 443 som standard.

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. Standard ä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 underliggande transport.

Returtyp

Exempel

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


   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

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 en specifik Service Bus-kö som klienten ansluter till.

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

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 det 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 ansluta 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]

Den receive_mode som meddelanden ska hämtas från entiteten med. De två alternativen är PEEK_LOCK och RECEIVE_AND_DELETE. Meddelanden som tas emot med PEEK_LOCK måste åtgärdas 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. Standard receive_mode är PEEK_LOCK.

max_wait_time
Optional[float]

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

auto_lock_renewer
Optional[AutoLockRenewer]

En ~azure.servicebus.AutoLockRenewer kan tillhandahållas 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 gäller endast 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 när 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 du skickar och tar emot data 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 skrivtidsutdelning 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 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

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 en specifik 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 du skickar och tar emot data 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 ServiceBusSender från 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

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>

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]

Den receive_mode som meddelanden ska hämtas från entiteten med. 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. Standard receive_mode ä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.AutoLockRenewer kan tillhandahållas så att meddelanden registreras automatiskt vid kvitto. 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 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

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