Azure Event Hubs i Python: AMQP över WebSockets via en HTTP-proxy
Skicka Event Hubs http_proxy-ordbok med värdnamn och heltalsport medan du väljer WebSocket AMQP-transporten.
För en Event Hubs-konsument i Python som använder en HTTP-proxy konfigurerar du SDK:ns proxyordbok och WebSocket-transporten när klienten byggs:
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,
},
)
Namnrymden, Event Hub-namnet och autentiseringsuppgiften är programmets befintliga tjänstekonfiguration. Fortsätt med dess mottagnings-callbacks och den vanliga livscykeln för att stänga klienten.
Den här ordboken beskriver mellanhanden direkt. Den är inte den http/https-målschemakarta som Requests accepterar. För en offentlig Event Hubs-namnrymd där offentliga mellanhänder är tillåtna tillhandahåller HTTP-proxylistan kandidater för fälten värdnamn och port utan konto. Lägg till nycklarna username och password om det avsedda proxykontot krävs.
AMQP över WebSockets använder tjänstens port 443, medan den vanliga AMQP-transporten använder 5671. Proxyn måste fortfarande tillåta den resulterande anslutningen till Event Hubs-namnrymden.
En tokenautentiseringsuppgift kan göra separata HTTP-förfrågningar medan den hämtar tokens. Konfigurera den transport den stöder vid behov när den autentiseringsvägen också behöver proxyn.