Azure Event Hubs em Python: AMQP sobre WebSockets através de um proxy HTTP
Passe o dicionário http_proxy do Event Hubs com o nome do host e a porta inteira ao selecionar o transporte WebSocket AMQP.
Para um consumidor de Event Hubs em Python que usa um proxy HTTP, configure o dicionário de proxy do SDK e o transporte WebSocket ao construir o cliente:
from azure.eventhub import EventHubConsumerClient, TransportType
client = EventHubConsumerClient(
fully_qualified_namespace=namespace,
eventhub_name=eventhub_name,
consumer_group='$Default',
credential=credential,
transport_type=TransportType.AmqpOverWebsocket,
http_proxy={
'proxy_hostname': 'proxy.example',
'proxy_port': 8080,
},
)
O namespace, o nome do Event Hub e a credencial são a configuração de serviço existente da aplicação. Continue com os seus callbacks de receção e o ciclo de vida habitual de fecho do cliente.
Este dicionário descreve o intermediário diretamente. Não é o mapa de esquemas de destino http/https que o Requests aceita. Para um namespace público do Event Hubs onde são permitidos intermediários públicos, a lista de proxies HTTP fornece candidatos para os campos de nome de host e porta sem conta. Adicione as chaves username e password se a conta de proxy pretendida for necessária.
AMQP sobre WebSockets utiliza a porta 443 do serviço, enquanto o transporte AMQP comum utiliza a 5671. O proxy ainda tem de permitir a ligação resultante para o namespace do Event Hubs.
Uma credencial de token pode efetuar pedidos HTTP separados enquanto obtém tokens. Configure o transporte suportado conforme necessário quando esse caminho de autenticação também precisar do proxy.