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 de anfitrião completamente qualificado para o espaço de nomes do Service Bus. O formato do espaço de nomes é: .servicebus.windows.net.
- credential
- TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
O objeto de credencial utilizado para autenticação que implementa uma interface específica para obter tokens. Aceita objetos de credenciais gerados pela biblioteca de identidades do azure e objetos que implementam o método *get_token(auto, âmbitos) ou, em alternativa, também pode ser fornecido um AzureSasCredential.
- logging_enable
- bool
Se pretende exportar registos de rastreio de rede para o logger. A predefinição é Falso.
- transport_type
- TransportType
O tipo de protocolo de transporte que será utilizado para comunicar com o serviço Service Bus. A predefinição é TransportType.Amqp , caso em que é utilizada a porta 5671. Se a porta 5671 estiver indisponível/bloqueada no ambiente de rede, pode utilizar TransportType.AmqpOverWebsocket , que utiliza a porta 443 para comunicação.
- http_proxy
- Dict
Definições de proxy HTTP. Tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor str) e "proxy_port" (valor int). Além disso, também podem estar presentes as seguintes chaves: "nome de utilizador", "palavra-passe".
- user_agent
- str
Se for especificado, será adicionado à frente da cadeia de agente de utilizador incorporada.
- retry_total
- int
O número total de tentativas de refazer uma operação falhada quando ocorre um erro. O valor predefinido é 3.
- retry_backoff_factor
- float
Trás delta interna na unidade de segundo entre repetições. O valor predefinido é 0,8.
- retry_backoff_max
- float
Intervalo de recuo máximo na unidade de segundo. O valor predefinido é 120.
- retry_mode
- str
O comportamento de atraso entre tentativas de repetição. Os valores suportados são "fixos" ou "exponenciais", em que a predefinição é "exponencial".
- custom_endpoint_address
- str
O endereço de ponto final personalizado a utilizar para estabelecer uma ligação ao serviço do Service Bus, permitindo que os pedidos de rede sejam encaminhados através de quaisquer gateways de aplicação ou outros caminhos necessários para o ambiente anfitrião. A predefinição é Nenhuma. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, será utilizada por predefinição a porta 443.
- connection_verify
- str
Caminho para o ficheiro de CA_BUNDLE personalizado do certificado SSL que é utilizado para autenticar a identidade do ponto final de ligação. A predefinição é Nenhum, caso em que certifi.where() será utilizado.
- uamqp_transport
- bool
Se pretende utilizar a biblioteca uamqp como o transporte subjacente. O valor predefinido é Falso e a biblioteca AMQP de Python Puro será utilizada 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 de anfitrião completamente qualificado para o espaço de nomes do Service Bus. O formato do espaço de nomes é: .servicebus.windows.net.
Métodos
close |
Feche o cliente ServiceBus. Todos os remetentes gerados, recetores e ligação subjacente serão encerrados. |
from_connection_string |
Crie um ServiceBusClient a partir de uma cadeia de ligação. |
get_queue_receiver |
Obtenha ServiceBusReceiver para a fila específica. |
get_queue_sender |
Obtenha o ServiceBusSender para a fila específica. |
get_subscription_receiver |
Obtenha o ServiceBusReceiver para a subscrição específica no tópico. |
get_topic_sender |
Obtenha o ServiceBusSender para o tópico específico. |
close
Feche o cliente ServiceBus. Todos os remetentes gerados, recetores e ligação subjacente serão encerrados.
close() -> None
Devoluções
Nenhuma
from_connection_string
Crie um ServiceBusClient a partir de uma cadeia de ligaçã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 pretende exportar registos de rastreio de rede para o logger. A predefinição é Falso.
- transport_type
- TransportType
O tipo de protocolo de transporte que será utilizado para comunicar com o serviço Service Bus. A predefinição é TransportType.Amqp , caso em que é utilizada a porta 5671. Se a porta 5671 estiver indisponível/bloqueada no ambiente de rede, pode utilizar TransportType.AmqpOverWebsocket , que utiliza a porta 443 para comunicação.
- http_proxy
- Dict
Definições de proxy HTTP. Tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor str) e "proxy_port" (valor int). Além disso, também podem estar presentes as seguintes chaves: "nome de utilizador", "palavra-passe".
- user_agent
- str
Se for especificado, será adicionado à frente da cadeia de agente de utilizador incorporada.
- retry_total
- int
O número total de tentativas de refazer uma operação falhada quando ocorre um erro. O valor predefinido é 3.
- retry_backoff_factor
- float
Trás delta interna na unidade de segundo entre repetições. O valor predefinido é 0,8.
- retry_backoff_max
- float
Intervalo de recuo máximo na unidade de segundo. O valor predefinido é 120.
- retry_mode
- str
O comportamento de atraso entre tentativas de repetição. Os valores suportados são "fixos" ou "exponenciais", em que a predefinição é "exponencial".
- custom_endpoint_address
- str
O endereço de ponto final personalizado a utilizar para estabelecer uma ligação ao serviço do Service Bus, permitindo que os pedidos de rede sejam encaminhados através de quaisquer gateways de aplicação ou outros caminhos necessários para o ambiente anfitrião. A predefinição é Nenhuma. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, será utilizada por predefinição a porta 443.
- connection_verify
- str
Caminho para o ficheiro de CA_BUNDLE personalizado do certificado SSL que é utilizado para autenticar a identidade do ponto final de ligação. A predefinição é Nenhum, caso em que certifi.where() será utilizado.
- uamqp_transport
- bool
Se pretende utilizar a biblioteca uamqp como o transporte subjacente. O valor predefinido é Falso e a biblioteca AMQP de Python Puro será utilizada como o transporte subjacente.
Tipo de retorno
Exemplos
Crie uma nova instância do ServiceBusClient a partir da cadeia de ligaçã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
- session_id
- str ou <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Uma sessão específica a partir da qual receber. Tem de ser especificado para uma fila com sessão, caso contrário, tem de ser Nenhum. Para receber mensagens da próxima sessão disponível, defina esta opção como ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str ou ServiceBusSubQueue ou None
Se for especificado, a subconsulta à qual este recetor se ligará. Isto inclui as filas DEAD_LETTER e TRANSFER_DEAD_LETTER, contém mensagens que não podem ser entregues a nenhum recetor ou mensagens que não podem ser processadas. A predefinição é Nenhuma, ou seja, ligar à fila primária. Podem ser atribuídos valores de ServiceBusSubQueue ou valores de cadeia equivalentes "deadletter" e "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
O receive_mode com que mensagens serão obtidas da entidade. As duas opções são PEEK_LOCK e RECEIVE_AND_DELETE. As mensagens recebidas com PEEK_LOCK têm de ser resolvidas num 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 posteriormente rejeitadas ou novamente recebidas se o cliente não conseguir processar a mensagem. A receive_mode predefinida é PEEK_LOCK.
O tempo limite em segundos entre as mensagens recebidas após as quais o recetor deixará de receber automaticamente. O valor predefinido é Nenhum, o que significa que não há tempo limite. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, o valor de tempo limite da ligação poderá ter de ser ajustado. Veja o parâmetro opcional socket_timeout para obter mais detalhes.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Pode ser fornecido ~azure.servicebus.AutoLockRenewer para que as mensagens sejam registadas automaticamente no recibo. Se o recetor for um recetor de sessão, será aplicado à sessão.
- prefetch_count
- int
O número máximo de mensagens a colocar em cache com cada pedido ao serviço. Esta definição destina-se apenas a otimização avançada do desempenho. Aumentar este valor melhorará o desempenho do débito de mensagens, mas aumentará a probabilidade de as mensagens expirarem enquanto forem colocadas em cache se não forem processadas com rapidez suficiente. O valor predefinido é 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 tentaria colocar em cache max_message_count (se for fornecido) no respetivo pedido ao serviço.
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância do recetor. O Service Bus irá associá-lo a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, será gerado um ID exclusivo.
- socket_timeout
- float
O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, poderá ser necessário transmitir um valor superior ao predefinido.
Tipo de retorno
Exemplos
Crie uma nova instância do ServiceBusReceiver a partir de 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 o ServiceBusSender para a fila específica.
get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender
Parâmetros
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância do remetente. O Service Bus irá associá-lo a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, será gerado um ID exclusivo.
- socket_timeout
- float
O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, poderá ser necessário transmitir um valor maior do que o predefinido.
Devoluções
Um Remetente de fila.
Tipo de retorno
Exemplos
Crie uma nova instância do ServiceBusSender a partir de 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 o ServiceBusReceiver para a subscrição 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
- subscription_name
- str
O nome da Subscrição específica do Service Bus no Tópico do Service Bus especificado.
- session_id
- str ou <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>
Uma sessão específica a partir da qual receber. Tem de ser especificado para uma subscrição com sessão, caso contrário, tem de ser Nenhuma. Para receber mensagens da próxima sessão disponível, defina esta opção como ~azure.servicebus.NEXT_AVAILABLE_SESSION.
- sub_queue
- str ou ServiceBusSubQueue ou None
Se for especificado, a subconjunta a que este recetor se ligará. Isto inclui as filas DEAD_LETTER e TRANSFER_DEAD_LETTER, contém mensagens que não podem ser entregues a nenhum recetor ou mensagens que não podem ser processadas. A predefinição é Nenhuma, o que significa ligar à fila primária. Podem ser atribuídos valores de ServiceBusSubQueue enum ou valores de cadeia equivalentes "deadletter" e "transferdeadletter".
- receive_mode
- Union[ServiceBusReceiveMode, str]
O receive_mode com que mensagens serão obtidas da entidade. As duas opções são PEEK_LOCK e RECEIVE_AND_DELETE. As mensagens recebidas com PEEK_LOCK têm de ser resolvidas num determinado período de bloqueio antes de serem removidas da subscrição. As mensagens recebidas com RECEIVE_AND_DELETE serão imediatamente removidas da subscrição e não podem ser posteriormente rejeitadas ou novamente recebidas se o cliente não conseguir processar a mensagem. A receive_mode predefinida é PEEK_LOCK.
O tempo limite em segundos entre as mensagens recebidas após as quais o recetor deixará de receber automaticamente. O valor predefinido é Nenhum, o que significa que não há tempo limite. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, o valor de tempo limite da ligação poderá ter de ser ajustado. Veja o parâmetro opcional socket_timeout para obter mais detalhes.
- auto_lock_renewer
- Optional[AutoLockRenewer]
Pode ser fornecido um ~azure.servicebus.AutoLockRenewer para que as mensagens sejam registadas automaticamente no recibo. Se o recetor for um recetor de sessão, será aplicado à sessão.
- prefetch_count
- int
O número máximo de mensagens a colocar em cache com cada pedido ao serviço. Esta definição destina-se apenas à otimização avançada do desempenho. Aumentar este valor irá melhorar o desempenho do débito de mensagens, mas aumentará a probabilidade de as mensagens expirarem enquanto forem colocadas em cache se não forem processadas com rapidez suficiente. O valor predefinido é 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, o ServiceBusReceiver.receive tentaria colocar em cache max_message_count (se for fornecido) no respetivo pedido ao serviço.
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância do recetor. O Service Bus irá associá-lo a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, será gerado um ID exclusivo.
- socket_timeout
- float
O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, poderá ser necessário transmitir um valor maior do que o predefinido.
Tipo de retorno
Exemplos
Crie uma nova instância do ServiceBusReceiver a partir 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 o ServiceBusSender para o tópico específico.
get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender
Parâmetros
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância do remetente. O Service Bus irá associá-lo a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, será gerado um ID exclusivo.
- socket_timeout
- float
O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, poderá ser necessário transmitir um valor maior do que o predefinido.
Devoluções
Um remetente de tópicos.
Tipo de retorno
Exemplos
Crie uma nova instância do ServiceBusSender a partir 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)