Azure Event Hubs en Python: AMQP sobre WebSockets a través de un proxy HTTP
Pase el diccionario http_proxy de Event Hubs con el nombre de host y el puerto entero mientras selecciona el transporte WebSocket AMQP.
Para un consumidor de Event Hubs en Python que usa un proxy HTTP, configure el diccionario de proxy del SDK y el transporte WebSocket al construir el 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,
},
)
El espacio de nombres, el nombre del Event Hub y la credencial son la configuración de servicio existente de la aplicación. Continúe con sus devoluciones de llamada de recepción y el ciclo de vida habitual de cierre del cliente.
Este diccionario describe el intermediario directamente. No es el mapa de esquemas de destino http/https que acepta Requests. Para un espacio de nombres público de Event Hubs donde se permiten intermediarios públicos, la lista de proxy HTTP ofrece candidatos para los campos de nombre de host y puerto sin cuenta. Añada las claves username y password si se requiere la cuenta de proxy prevista.
AMQP sobre WebSockets utiliza el puerto 443 del servicio, mientras que el transporte AMQP ordinario utiliza el 5671. El proxy debe seguir permitiendo la conexión resultante hacia el espacio de nombres de Event Hubs.
Una credencial de token puede realizar solicitudes HTTP separadas mientras obtiene tokens. Configure su transporte admitido según sea necesario cuando esa ruta de autenticación también necesite el proxy.