Compartir a través de


ServiceBusClient Clase

La clase ServiceBusClient define una interfaz de alto nivel para obtener ServiceBusSender y ServiceBusReceiver.

Herencia
builtins.object
ServiceBusClient

Constructor

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)

Parámetros

fully_qualified_namespace
str
Requerido

Nombre de host completo para el espacio de nombres de Service Bus. El formato del espacio de nombres es: .servicebus.windows.net.

credential
AsyncTokenCredential o AzureSasCredential o AzureNamedKeyCredential
Requerido

Objeto de credencial usado para la autenticación que implementa una interfaz determinada para obtener tokens. Acepta objetos de credenciales generados por la biblioteca azure-identity y los objetos que implementan el método *get_token(self, scopes) o, como alternativa, también se puede proporcionar una instancia de AzureSasCredential.

logging_enable
bool

Indica si se van a generar registros de seguimiento de red en el registrador. El valor predeterminado es false.

transport_type
TransportType

Tipo de protocolo de transporte que se usará para comunicarse con el servicio de Service Bus. El valor predeterminado es TransportType.Amqp en cuyo caso se usa el puerto 5671. Si el puerto 5671 no está disponible o bloqueado en el entorno de red, TransportType.AmqpOverWebsocket podría usarse en su lugar, que usa el puerto 443 para la comunicación.

http_proxy
Dict

Configuración del proxy HTTP. Debe ser un diccionario con las siguientes claves: "proxy_hostname" (valor str) y "proxy_port" (valor int). Además, las claves siguientes también pueden estar presentes: "username", "password".

user_agent
str

Si se especifica, se agregará delante de la cadena del agente de usuario integrada.

retry_total
int

Número total de intentos de rehacer una operación con error cuando se produce un error. El valor predeterminado es 3.

retry_backoff_factor
float

Retroceso diferencial interno en la unidad de segundo entre reintentos. El valor predeterminado es 0,8.

retry_backoff_max
float

Intervalo máximo de retroceso en la unidad de segundo. El valor predeterminado es 120.

retry_mode
str

Comportamiento de retraso entre reintentos. Los valores admitidos son "fijo" o "exponencial", donde el valor predeterminado es "exponencial".

custom_endpoint_address
str

La dirección del punto de conexión personalizado que se va a usar para establecer una conexión con el servicio Service Bus, lo que permite enrutar las solicitudes de red a través de las puertas de enlace de aplicaciones u otras rutas de acceso necesarias para el entorno host. El valor predeterminado es None. El formato sería "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Si no se especifica el puerto en el custom_endpoint_address, se usará el puerto 443 de forma predeterminada.

connection_verify
str

Ruta de acceso al archivo de CA_BUNDLE personalizado del certificado SSL que se usa para autenticar la identidad del punto de conexión. El valor predeterminado es None en cuyo caso se usará certifi.where().

uamqp_transport
bool

Si se debe usar la biblioteca uamqp como transporte subyacente. El valor predeterminado es False y la biblioteca AMQP de Python pura se usará como transporte subyacente.

Ejemplos

Cree una nueva instancia de 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()
   )

Variables

fully_qualified_namespace
str

Nombre de host completo para el espacio de nombres de Service Bus. El formato del espacio de nombres es: .servicebus.windows.net.

Métodos

close

Cierre el cliente de ServiceBus. Todos los remitentes, receptores y conexiones subyacentes generados se apagarán.

from_connection_string

Cree un ServiceBusClient a partir de una cadena de conexión.

get_queue_receiver

Obtenga ServiceBusReceiver para la cola específica.

get_queue_sender

Obtenga ServiceBusSender para la cola específica.

get_subscription_receiver

Obtenga ServiceBusReceiver para la suscripción específica en el tema.

get_topic_sender

Obtenga ServiceBusSender para el tema específico.

close

Cierre el cliente de ServiceBus. Todos los remitentes, receptores y conexiones subyacentes generados se apagarán.

async close() -> None

Devoluciones

Ninguno

from_connection_string

Cree un ServiceBusClient a partir de una cadena de conexión.

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

Parámetros

conn_str
str
Requerido

Cadena de conexión de service Bus.

logging_enable
bool

Indica si se van a generar registros de seguimiento de red en el registrador. El valor predeterminado es false.

transport_type
TransportType

Tipo de protocolo de transporte que se usará para comunicarse con el servicio de Service Bus. El valor predeterminado es TransportType.Amqp en cuyo caso se usa el puerto 5671. Si el puerto 5671 no está disponible o bloqueado en el entorno de red, TransportType.AmqpOverWebsocket podría usarse en su lugar, que usa el puerto 443 para la comunicación.

http_proxy
Dict

Configuración del proxy HTTP. Debe ser un diccionario con las siguientes claves: "proxy_hostname" (valor str) y "proxy_port" (valor int). Además, las claves siguientes también pueden estar presentes: "username", "password".

user_agent
str

Si se especifica, se agregará delante de la cadena del agente de usuario integrada.

retry_total
int

Número total de intentos de rehacer una operación con error cuando se produce un error. El valor predeterminado es 3.

retry_backoff_factor
float

Retroceso diferencial interno en la unidad de segundo entre reintentos. El valor predeterminado es 0,8.

retry_backoff_max
float

Intervalo máximo de retroceso en la unidad de segundo. El valor predeterminado es 120.

retry_mode
str

Comportamiento de retraso entre reintentos. Los valores admitidos son "fijo" o "exponencial", donde el valor predeterminado es "exponencial".

custom_endpoint_address
str

La dirección del punto de conexión personalizado que se va a usar para establecer una conexión con el servicio Service Bus, lo que permite enrutar las solicitudes de red a través de las puertas de enlace de aplicaciones u otras rutas de acceso necesarias para el entorno host. El valor predeterminado es None. El formato sería "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Si no se especifica el puerto en el custom_endpoint_address, se usará el puerto 443 de forma predeterminada.

connection_verify
str

Ruta de acceso al archivo de CA_BUNDLE personalizado del certificado SSL que se usa para autenticar la identidad del punto de conexión. El valor predeterminado es None en cuyo caso se usará certifi.where().

uamqp_transport
bool

Si se debe usar la biblioteca uamqp como transporte subyacente. El valor predeterminado es False y la biblioteca AMQP de Python pura se usará como transporte subyacente.

Tipo de valor devuelto

Ejemplos

Cree una nueva instancia de ServiceBusClient a partir de la cadena de conexión.


   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

Obtenga ServiceBusReceiver para la cola específica.

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

Parámetros

queue_name
str
Requerido

Ruta de acceso de una cola específica de Service Bus a la que se conecta el cliente.

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

Una sesión específica de la que se va a recibir. Debe especificarse para una cola con sesión; de lo contrario, debe ser None. Para recibir mensajes de la siguiente sesión disponible, establézcalo en ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str o ServiceBusSubQueue o None

Si se especifica, la subconsulta a la que se conectará este receptor. Esto incluye las colas de DEAD_LETTER y TRANSFER_DEAD_LETTER, contiene mensajes que no se pueden entregar a ningún receptor o mensaje que no se pueda procesar. El valor predeterminado es None, lo que significa conectarse a la cola principal. Se pueden asignar valores de la enumeración ServiceBusSubQueue o valores de cadena equivalentes "deadletter" y "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

Modo con el que se recuperarán los mensajes de la entidad. Las dos opciones son PEEK_LOCK y RECEIVE_AND_DELETE. Los mensajes recibidos con PEEK_LOCK deben liquidarse dentro de un período de bloqueo determinado antes de que se quiten de la cola. Los mensajes recibidos con RECEIVE_AND_DELETE se quitarán inmediatamente de la cola y no se podrán rechazar ni volver a recibir posteriormente si el cliente no puede procesar el mensaje. El modo predeterminado es PEEK_LOCK.

max_wait_time
Optional[float]

Tiempo de espera en segundos entre los mensajes recibidos después del cual el receptor dejará de recibirse automáticamente. El valor predeterminado es None, lo que significa que no hay tiempo de espera. Si se producen errores de conexión debido a que se agota el tiempo de espera de escritura, es posible que sea necesario ajustar el valor de tiempo de espera de conexión. Consulte el socket_timeout parámetro opcional para obtener más detalles.

auto_lock_renewer
Optional[AutoLockRenewer]

Se puede proporcionar un ~azure.servicebus.aio.AutoLockRenewer para que los mensajes se registren automáticamente al recibirlos. Si el receptor es un receptor de sesión, se aplicará a la sesión en su lugar.

prefetch_count
int

Número máximo de mensajes que se van a almacenar en caché con cada solicitud al servicio. Esta configuración solo es para la optimización avanzada del rendimiento. Aumentar este valor mejorará el rendimiento del mensaje, pero aumentará la posibilidad de que los mensajes expiren mientras se almacenan en caché si no se procesan lo suficientemente rápido. El valor predeterminado es 0, lo que significa que los mensajes se recibirán del servicio y se procesarán de uno en uno. En el caso de que prefetch_count sea 0, ServiceBusReceiver.receive intentaría almacenar en caché max_message_count (si se proporciona) dentro de su solicitud al servicio.

client_identifier
str

Identificador basado en cadenas para identificar de forma única la instancia del receptor. Service Bus lo asociará a algunos mensajes de error para facilitar la correlación de errores. Si no se especifica, se generará un identificador único.

socket_timeout
float

Tiempo en segundos que el socket subyacente de la conexión debe esperar al enviar y recibir datos antes de que se agote el tiempo de espera. El valor predeterminado es 0.2 para TransportType.Amqp y 1 para TransportType.AmqpOverWebsocket. Si se producen errores de conexión debido al tiempo de espera de escritura, es posible que sea necesario pasar un valor mayor que el predeterminado.

Tipo de valor devuelto

Ejemplos

Cree una nueva instancia de ServiceBusSender desde 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

Obtenga ServiceBusSender para la cola específica.

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

Parámetros

queue_name
str
Requerido

Ruta de acceso de una cola específica de Service Bus a la que se conecta el cliente.

client_identifier
str

Identificador basado en cadenas para identificar de forma única la instancia del remitente. Service Bus lo asociará a algunos mensajes de error para facilitar la correlación de errores. Si no se especifica, se generará un identificador único.

socket_timeout
float

Tiempo en segundos que el socket subyacente de la conexión debe esperar al enviar y recibir datos antes de que se agote el tiempo de espera. El valor predeterminado es 0.2 para TransportType.Amqp y 1 para TransportType.AmqpOverWebsocket. Si se producen errores de conexión debido al tiempo de espera de escritura, es posible que sea necesario pasar un valor mayor que el predeterminado.

Devoluciones

Remitente de cola.

Tipo de valor devuelto

Ejemplos

Cree una nueva instancia de ServiceBusClient a partir de la cadena de conexión.


   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

Obtenga ServiceBusReceiver para la suscripción específica en el tema.

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

Parámetros

topic_name
str
Requerido

Nombre del tema de Service Bus específico al que se conecta el cliente.

subscription_name
str
Requerido

Nombre de una suscripción de Service Bus específica en el tema de Service Bus especificado.

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

Una sesión específica de la que se va a recibir. Debe especificarse para una suscripción con sesión; de lo contrario, debe ser None. Para recibir mensajes de la siguiente sesión disponible, establézcalo en ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str o ServiceBusSubQueue o None

Si se especifica, la subconsulta a la que se conectará este receptor. Esto incluye las colas de DEAD_LETTER y TRANSFER_DEAD_LETTER, contiene mensajes que no se pueden entregar a ningún receptor o mensaje que no se pueda procesar. El valor predeterminado es None, lo que significa conectarse a la cola principal. Se pueden asignar valores de la enumeración ServiceBusSubQueue o valores de cadena equivalentes "deadletter" y "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

Modo con el que se recuperarán los mensajes de la entidad. Las dos opciones son PEEK_LOCK y RECEIVE_AND_DELETE. Los mensajes recibidos con PEEK_LOCK deben liquidarse dentro de un período de bloqueo determinado antes de que se quiten de la suscripción. Los mensajes recibidos con RECEIVE_AND_DELETE se quitarán inmediatamente de la suscripción y no se podrán rechazar ni volver a recibir posteriormente si el cliente no puede procesar el mensaje. El modo predeterminado es PEEK_LOCK.

max_wait_time
Optional[float]

Tiempo de espera en segundos entre los mensajes recibidos después del cual el receptor dejará de recibirse automáticamente. El valor predeterminado es None, lo que significa que no hay tiempo de espera. Si se producen errores de conexión debido a que se agota el tiempo de espera de escritura, es posible que sea necesario ajustar el valor de tiempo de espera de conexión. Consulte el socket_timeout parámetro opcional para obtener más detalles.

auto_lock_renewer
Optional[AutoLockRenewer]

Se puede proporcionar un ~azure.servicebus.aio.AutoLockRenewer para que los mensajes se registren automáticamente al recibirlos. Si el receptor es un receptor de sesión, se aplicará a la sesión en su lugar.

prefetch_count
int

Número máximo de mensajes que se van a almacenar en caché con cada solicitud al servicio. Esta configuración solo es para la optimización avanzada del rendimiento. Aumentar este valor mejorará el rendimiento del mensaje, pero aumentará la posibilidad de que los mensajes expiren mientras se almacenan en caché si no se procesan lo suficientemente rápido. El valor predeterminado es 0, lo que significa que los mensajes se recibirán del servicio y se procesarán de uno en uno. En el caso de que prefetch_count sea 0, ServiceBusReceiver.receive intentaría almacenar en caché max_message_count (si se proporciona) dentro de su solicitud al servicio.

client_identifier
str

Identificador basado en cadenas para identificar de forma única la instancia del receptor. Service Bus lo asociará a algunos mensajes de error para facilitar la correlación de errores. Si no se especifica, se generará un identificador único.

socket_timeout
float

Tiempo en segundos que el socket subyacente de la conexión debe esperar al enviar y recibir datos antes de que se agote el tiempo de espera. El valor predeterminado es 0.2 para TransportType.Amqp y 1 para TransportType.AmqpOverWebsocket. Si se producen errores de conexión debido al tiempo de espera de escritura, es posible que sea necesario pasar un valor mayor que el predeterminado.

Tipo de valor devuelto

Ejemplos

Cree una nueva instancia de ServiceBusReceiver desde 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

Obtenga ServiceBusSender para el tema específico.

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

Parámetros

topic_name
str
Requerido

La ruta de acceso del tema específico de Service Bus al que se conecta el cliente.

client_identifier
str

Identificador basado en cadenas para identificar de forma única la instancia del remitente. Service Bus lo asociará a algunos mensajes de error para facilitar la correlación de errores. Si no se especifica, se generará un identificador único.

socket_timeout
float

Tiempo en segundos que el socket subyacente de la conexión debe esperar al enviar y recibir datos antes de que se agote el tiempo de espera. El valor predeterminado es 0.2 para TransportType.Amqp y 1 para TransportType.AmqpOverWebsocket. Si se producen errores de conexión debido al tiempo de espera de escritura, es posible que sea necesario pasar un valor mayor que el predeterminado.

Devoluciones

Remitente de un tema.

Tipo de valor devuelto

Ejemplos

Cree una nueva instancia de ServiceBusSender desde 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)