我正在尝试访问Azure EvenHub,但我的网络使我使用代理,并且仅允许通过https(端口443)进行连接基于https://learn.microsoft.com/en-us/python/api/azure-eventhub/azure.eventhub.aio.eventhubproducerclient?view=azure-python
我添加了代理配置和TransportType.AmqpOverWebsocket参数,我的Producer如下所示:
async def run():
producer = EventHubProducerClient.from_connection_string(
"Endpoint=sb://my_eh.servicebus.windows.net/;SharedAccessKeyName=eh-sender;SharedAccessKey=MFGf5MX6Mdummykey=",
eventhub_name="my_eh",
auth_timeout=180,
http_proxy=HTTP_PROXY,
transport_type=TransportType.AmqpOverWebsocket,
)
我得到一个错误:
File "/usr/local/lib64/python3.9/site-packages/uamqp/authentication/cbs_auth_async.py", line 74, in create_authenticator_async
raise errors.AMQPConnectionError(
uamqp.errors.AMQPConnectionError: Unable to open authentication session on connection b'EHProducer-a1cc5f12-96a1-4c29-ae54-70aafacd3097'.
Please confirm target hostname exists: b'my_eh.servicebus.windows.net'
我不知道可能是什么问题。它可能与此有关吗?https://github.com/Azure/azure-event-hubs-c/issues/50#issuecomment-501437753
1条答案
按热度按时间xuo3flqw1#
您应该能够设置SDK用来访问EventHub的代理。下面是一个sample,它向您展示了如何使用代理信息设置HTTP_PROXY字典。在后台,当代理被传入时,它会自动通过websockets。
正如@BrunoLucasAzure建议的那样,检查代理上的端口本身将是一个很好的检查,因为根据错误消息,它看起来像是通过了代理,无法解析端点。