Compartilhar via


ServiceBusClient Classe

A classe ServiceBusClient define uma interface de alto nível para obter ServiceBusSender e ServiceBusReceiver.

Herança
builtins.object
ServiceBusClient

Construtor

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)

Parâmetros

fully_qualified_namespace
str
Obrigatório

O nome do host totalmente qualificado para o namespace do Barramento de Serviço. O formato do namespace é: .servicebus.windows.net.

credential
TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Obrigatório

O objeto de credencial usado para autenticação que implementa uma interface específica para obter tokens. Ele aceita objetos de credencial gerados pela biblioteca de identidade do azure e objetos que implementam o método *get_token(self, scopes) ou, como alternativa, um AzureSasCredential também pode ser fornecido.

logging_enable
bool

Se os logs de rastreamento de rede devem ser gerados para o agente. O padrão é False.

transport_type
TransportType

O tipo de protocolo de transporte que será usado para se comunicar com o serviço do Barramento de Serviço. O padrão é TransportType.Amqp , caso em que a porta 5671 é usada. Se a porta 5671 não estiver disponível/bloqueada no ambiente de rede, TransportType.AmqpOverWebsocket poderá ser usado, em vez disso, que usa a porta 443 para comunicação.

http_proxy
Dict

Configurações de proxy HTTP. Deve ser um dicionário com as seguintes chaves: 'proxy_hostname' (valor str) e 'proxy_port' (valor int). Além disso, as seguintes chaves também podem estar presentes: 'username', 'password'.

user_agent
str

Se especificado, isso será adicionado na frente da cadeia de caracteres interna do agente do usuário.

retry_total
int

O número total de tentativas de refazer uma operação com falha quando ocorre um erro. O valor padrão é 3.

retry_backoff_factor
float

Retirada delta interna na unidade de segundo entre novas tentativas. O valor padrão é 0,8.

retry_backoff_max
float

Intervalo máximo de retirada na unidade de segundo. O valor padrão é 120.

retry_mode
str

O comportamento de atraso entre tentativas de repetição. Os valores com suporte são "fixos" ou "exponencial", em que o padrão é "exponencial".

custom_endpoint_address
str

O endereço do ponto de extremidade personalizado a ser usado para estabelecer uma conexão com o serviço do Barramento de Serviço, permitindo que as solicitações de rede sejam roteadas por meio de quaisquer gateways de aplicativo ou outros caminhos necessários para o ambiente de host. O padrão é None. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, por padrão, a porta 443 será usada.

connection_verify
str

Caminho para o arquivo de CA_BUNDLE personalizado do certificado SSL que é usado para autenticar a identidade do ponto de extremidade de conexão. O padrão é None, caso em que certifi.where() será usado.

uamqp_transport
bool

Se a biblioteca uamqp deve ser usada como o transporte subjacente. O valor padrão é False e a biblioteca AMQP pura do Python será usada como o transporte subjacente.

Exemplos

Crie uma nova instância do 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()
   )

Variáveis

fully_qualified_namespace
str

O nome do host totalmente qualificado para o namespace do Barramento de Serviço. O formato do namespace é: .servicebus.windows.net.

Métodos

close

Feche o cliente ServiceBus. Todos os remetentes, receptores e conexão subjacente gerados serão desligados.

from_connection_string

Crie um ServiceBusClient de uma cadeia de conexão.

get_queue_receiver

Obtenha ServiceBusReceiver para a fila específica.

get_queue_sender

Obtenha ServiceBusSender para a fila específica.

get_subscription_receiver

Obtenha ServiceBusReceiver para a assinatura específica no tópico.

get_topic_sender

Obtenha ServiceBusSender para o tópico específico.

close

Feche o cliente ServiceBus. Todos os remetentes, receptores e conexão subjacente gerados serão desligados.

close() -> None

Retornos

Nenhum

from_connection_string

Crie um ServiceBusClient de uma cadeia de conexão.

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
Obrigatório

A cadeia de conexão de um Barramento de Serviço.

logging_enable
bool

Se os logs de rastreamento de rede devem ser gerados para o agente. O padrão é False.

transport_type
TransportType

O tipo de protocolo de transporte que será usado para se comunicar com o serviço do Barramento de Serviço. O padrão é TransportType.Amqp , caso em que a porta 5671 é usada. Se a porta 5671 não estiver disponível/bloqueada no ambiente de rede, TransportType.AmqpOverWebsocket poderá ser usado, em vez disso, que usa a porta 443 para comunicação.

http_proxy
Dict

Configurações de proxy HTTP. Deve ser um dicionário com as seguintes chaves: 'proxy_hostname' (valor str) e 'proxy_port' (valor int). Além disso, as seguintes chaves também podem estar presentes: 'username', 'password'.

user_agent
str

Se especificado, isso será adicionado na frente da cadeia de caracteres interna do agente do usuário.

retry_total
int

O número total de tentativas de refazer uma operação com falha quando ocorre um erro. O valor padrão é 3.

retry_backoff_factor
float

Retirada delta interna na unidade de segundo entre novas tentativas. O valor padrão é 0,8.

retry_backoff_max
float

Intervalo máximo de retirada na unidade de segundo. O valor padrão é 120.

retry_mode
str

O comportamento de atraso entre tentativas de repetição. Os valores com suporte são 'fixo' ou 'exponencial', em que o padrão é 'exponencial'.

custom_endpoint_address
str

O endereço do ponto de extremidade personalizado a ser usado para estabelecer uma conexão com o serviço do Barramento de Serviço, permitindo que as solicitações de rede sejam roteadas por meio de quaisquer gateways de aplicativo ou outros caminhos necessários para o ambiente de host. O padrão é None. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, por padrão, a porta 443 será usada.

connection_verify
str

Caminho para o arquivo de CA_BUNDLE personalizado do certificado SSL que é usado para autenticar a identidade do ponto de extremidade de conexão. O padrão é None, caso em que certifi.where() será usado.

uamqp_transport
bool

Se a biblioteca uamqp deve ser usada como o transporte subjacente. O valor padrão é False e a biblioteca AMQP pura do Python será usada como o transporte subjacente.

Tipo de retorno

Exemplos

Crie uma nova instância do ServiceBusClient da cadeia de conexão.


   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

Obtenha ServiceBusReceiver para a fila 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
Obrigatório

O caminho da fila específica do Barramento de Serviço ao qual o cliente se conecta.

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

Uma sessão específica da qual receber. Isso deve ser especificado para uma fila com sessão, caso contrário, deve ser Nenhum. Para receber mensagens da próxima sessão disponível, defina isso como ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str ou ServiceBusSubQueue ou None

Se especificado, a subconsulta à qual esse receptor se conectará. Isso inclui as filas DEAD_LETTER e TRANSFER_DEAD_LETTER, contém mensagens que não podem ser entregues a nenhum receptor ou mensagens que não podem ser processadas. O padrão é Nenhum, o que significa conectar-se à fila primária. Podem ser atribuídos valores de enumeração ServiceBusSubQueue ou valores de cadeia de caracteres equivalentes "deadletter" e "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

O receive_mode com o qual as mensagens serão recuperadas da entidade. As duas opções são PEEK_LOCK e RECEIVE_AND_DELETE. As mensagens recebidas com PEEK_LOCK devem ser liquidadas dentro de um determinado período de bloqueio antes de serem removidas da fila. As mensagens recebidas com RECEIVE_AND_DELETE serão imediatamente removidas da fila e não poderão ser rejeitadas ou reenviadas posteriormente se o cliente não processar a mensagem. O receive_mode padrão é PEEK_LOCK.

max_wait_time
Optional[float]

O tempo limite em segundos entre as mensagens recebidas após as quais o receptor deixará de receber automaticamente. O valor padrão é None, o que significa que não há tempo limite. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, o valor do tempo limite da conexão poderá precisar ser ajustado. Consulte o parâmetro opcional socket_timeout para obter mais detalhes.

auto_lock_renewer
Optional[AutoLockRenewer]

Um ~azure.servicebus.AutoLockRenewer pode ser fornecido de modo que as mensagens sejam registradas automaticamente no recebimento. Se o receptor for um receptor de sessão, ele será aplicado à sessão.

prefetch_count
int

O número máximo de mensagens a serem armazenadas em cache com cada solicitação para o serviço. Essa configuração é apenas para ajuste avançado de desempenho. Aumentar esse valor melhorará o desempenho da taxa de transferência da mensagem, mas aumentará a chance de que as mensagens expirem enquanto são armazenadas em cache se não forem processadas com rapidez suficiente. O valor padrão é 0, o que significa que as mensagens serão recebidas do serviço e processadas uma de cada vez. No caso de prefetch_count ser 0, ServiceBusReceiver.receive tentará armazenar em cache max_message_count (se fornecido) dentro de sua solicitação para o serviço.

client_identifier
str

Um identificador baseado em cadeia de caracteres para identificar exclusivamente a instância do receptor. O Barramento de Serviço o associará a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, uma ID exclusiva será gerada.

socket_timeout
float

O tempo em segundos que o soquete subjacente na conexão deve aguardar ao enviar e receber dados antes de atingir o tempo limite. O valor padrão é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, talvez seja necessário passar um valor maior que o padrão.

Tipo de retorno

Exemplos

Crie uma nova instância do ServiceBusReceiver do 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

Obtenha ServiceBusSender para a fila específica.

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

Parâmetros

queue_name
str
Obrigatório

O caminho da fila específica do Barramento de Serviço ao qual o cliente se conecta.

client_identifier
str

Um identificador baseado em cadeia de caracteres para identificar exclusivamente a instância do remetente. O Barramento de Serviço o associará a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, uma ID exclusiva será gerada.

socket_timeout
float

O tempo em segundos que o soquete subjacente na conexão deve aguardar ao enviar e receber dados antes de atingir o tempo limite. O valor padrão é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, talvez seja necessário passar um valor maior que o padrão.

Retornos

Um remetente de fila.

Tipo de retorno

Exemplos

Crie uma nova instância do ServiceBusSender do 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

Obtenha ServiceBusReceiver para a assinatura específica no tópico.

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
Obrigatório

O nome do Tópico do Barramento de Serviço específico ao qual o cliente se conecta.

subscription_name
str
Obrigatório

O nome da assinatura específica do Barramento de Serviço no Tópico do Barramento de Serviço fornecido.

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

Uma sessão específica da qual receber. Isso deve ser especificado para uma assinatura com sessão, caso contrário, deve ser Nenhum. Para receber mensagens da próxima sessão disponível, defina isso como ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str ou ServiceBusSubQueue ou None

Se especificado, a subconsulta à qual esse receptor se conectará. Isso inclui as filas DEAD_LETTER e TRANSFER_DEAD_LETTER, contém mensagens que não podem ser entregues a nenhum receptor ou mensagens que não podem ser processadas. O padrão é Nenhum, o que significa conectar-se à fila primária. Podem ser atribuídos valores de enumeração ServiceBusSubQueue ou valores de cadeia de caracteres equivalentes "deadletter" e "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

O receive_mode com o qual as mensagens serão recuperadas da entidade. As duas opções são PEEK_LOCK e RECEIVE_AND_DELETE. As mensagens recebidas com PEEK_LOCK devem ser liquidadas dentro de um determinado período de bloqueio antes de serem removidas da assinatura. As mensagens recebidas com RECEIVE_AND_DELETE serão imediatamente removidas da assinatura e não poderão ser rejeitadas ou reenviadas posteriormente se o cliente não processar a mensagem. O receive_mode padrão é PEEK_LOCK.

max_wait_time
Optional[float]

O tempo limite em segundos entre as mensagens recebidas após as quais o receptor deixará de receber automaticamente. O valor padrão é None, o que significa que não há tempo limite. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, o valor do tempo limite da conexão poderá precisar ser ajustado. Consulte o parâmetro opcional socket_timeout para obter mais detalhes.

auto_lock_renewer
Optional[AutoLockRenewer]

Um ~azure.servicebus.AutoLockRenewer pode ser fornecido de modo que as mensagens sejam registradas automaticamente no recebimento. Se o receptor for um receptor de sessão, ele será aplicado à sessão.

prefetch_count
int

O número máximo de mensagens a serem armazenadas em cache com cada solicitação para o serviço. Essa configuração é apenas para ajuste avançado de desempenho. Aumentar esse valor melhorará o desempenho da taxa de transferência da mensagem, mas aumentará a chance de que as mensagens expirem enquanto são armazenadas em cache se não forem processadas com rapidez suficiente. O valor padrão é 0, o que significa que as mensagens serão recebidas do serviço e processadas uma de cada vez. No caso de prefetch_count ser 0, ServiceBusReceiver.receive tentará armazenar em cache max_message_count (se fornecido) dentro de sua solicitação para o serviço.

client_identifier
str

Um identificador baseado em cadeia de caracteres para identificar exclusivamente a instância do receptor. O Barramento de Serviço o associará a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, uma ID exclusiva será gerada.

socket_timeout
float

O tempo em segundos que o soquete subjacente na conexão deve aguardar ao enviar e receber dados antes de atingir o tempo limite. O valor padrão é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, talvez seja necessário passar um valor maior que o padrão.

Tipo de retorno

Exemplos

Crie uma nova instância do ServiceBusReceiver do 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

Obtenha ServiceBusSender para o tópico específico.

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

Parâmetros

topic_name
str
Obrigatório

O caminho do Tópico do Barramento de Serviço específico ao qual o cliente se conecta.

client_identifier
str

Um identificador baseado em cadeia de caracteres para identificar exclusivamente a instância do remetente. O Barramento de Serviço o associará a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, uma ID exclusiva será gerada.

socket_timeout
float

O tempo em segundos que o soquete subjacente na conexão deve aguardar ao enviar e receber dados antes de atingir o tempo limite. O valor padrão é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, talvez seja necessário passar um valor maior que o padrão.

Retornos

Um remetente de tópico.

Tipo de retorno

Exemplos

Crie uma nova instância do ServiceBusSender do 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)