Для потребителя 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-запросы при получении токенов. Настройте поддерживаемый ими транспорт по необходимости, когда этому пути аутентификации тоже нужен прокси.

Похожие статьи