ServiceBusClient Classe
A classe ServiceBusClient define uma interface de alto nível para obter ServiceBusSender e ServiceBusReceiver.
- Herança
-
builtins.objectServiceBusClient
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
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
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
- 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
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.
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
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
O nome do Tópico do Barramento de Serviço específico ao qual o cliente se conecta.
- subscription_name
- str
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.
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
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)