Azure Event Hubs на Python: AMQP через WebSockets при использовании HTTP-прокси
Передайте словарь http_proxy Event Hubs с именем хоста и целым портом, одновременно выбрав транспорт WebSocket AMQP.
Для потребителя Event Hubs на Python, который использует HTTP-прокси, настройте при создании клиента словарь прокси из SDK и транспорт WebSocket:
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,
},
)
Пространство имён, имя Event Hub и учётные данные — это уже существующая конфигурация службы в приложении. Продолжайте с её обратными вызовами приёма и обычным жизненным циклом закрытия клиента.
Этот словарь напрямую описывает посредника. Это не карта схем назначения http/https, которую принимает Requests. Для публичного пространства имён Event Hubs, где разрешены публичные посредники, список HTTP-прокси даёт кандидатов для полей имени хоста и порта без учётной записи. Добавьте ключи username и password, если нужна предполагаемая учётная запись прокси.
AMQP через WebSockets использует порт 443 службы, тогда как обычный транспорт AMQP использует 5671. Прокси всё равно должен разрешать возникающее подключение к пространству имён Event Hubs.
Учётные данные на основе токена могут выполнять отдельные HTTP-запросы при получении токенов. Настройте поддерживаемый ими транспорт по необходимости, когда этому пути аутентификации тоже нужен прокси.