ServiceBusClient Klass
Klassen ServiceBusClient definierar ett högnivågränssnitt för att hämta ServiceBusSender och ServiceBusReceiver.
- Arv
-
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)
Parametrar
- fully_qualified_namespace
- str
Det fullständigt kvalificerade värdnamnet för Service Bus-namnområdet. Namnområdesformatet är: .servicebus.windows.net.
- credential
- TokenCredential eller AzureSasCredential eller AzureNamedKeyCredential
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
- 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
- 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.
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
- 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
- subscription_name
- str
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.
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
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)