如何在NetworkManagementClient的Azure Python SDK中设置会话代理?
我希望能够通过Azure Python SDK NetworkManagementClient (NMC)
使用代理服务器。我看到NMC
的_client
属性的类型为msrest.service_client
,其中包括config
属性的NetworkManagementClientConfiguration
,它继承自AzureConfiguration
,该属性本身具有msrest.pipeline.ClientProxies
类型的代理属性。如何在NetworkManagementClient的Azure Python SDK中设置会话代理?
鉴于上述情况,似乎配置代理是可能的,但我不明白设置它的正确方法。
首先,msrest正在使用请求,所以我假设你读了proxies documentation of requests。也请注意,requests.Session
对象具有trust_env
属性,默认为True
,用于读取一些env变量,如HTTP_PROXY
。
客户端的配置具有proxies
属性,正如您提到的ClientProxies
类。这个类有一个proxies
字典属性本身和一个add
方法添加在这个字典。这个类也有一个use_env_settings
布尔属性。
假设你有一个NetworkManagementClient
可变client
实例,因此您可以:
-
只需使用HTTP_PROXY/HTTPS_PROXY。请注意,您可以使用乏
client.config.proxies.use_env_settings = False
这只是一个别名的请求
trust_env
禁用ENV。 -
定义你自己的代理:
client.config.proxies.add('http', 'http://example.org:8080')
呼叫实际上是等同于
session.get(url,proxies={'http': 'http://example.org:8080'})
(我自己msrest在MS)