如何在Azure Python SDK中为NetworkManagementClient设置会话代理?

如何在Azure Python SDK中为NetworkManagementClient设置会话代理?,python,azure,proxy,Python,Azure,Proxy,我希望能够将代理服务器与Azure Python SDK一起使用NetworkManagementClient(NMC)。我看到NMC有一个\u client类型为msrest.service\u client的属性,其中包括一个config类型为NetworkManagementClientConfiguration的属性,该属性继承自AzureConfiguration,它本身具有类型为msrest.pipeline.ClientProxies的代理属性 鉴于上述情况,配置代理似乎是可行的,

我希望能够将代理服务器与Azure Python SDK一起使用
NetworkManagementClient(NMC)
。我看到
NMC
有一个
\u client
类型为
msrest.service\u client
的属性,其中包括一个
config
类型为
NetworkManagementClientConfiguration
的属性,该属性继承自
AzureConfiguration
,它本身具有类型为
msrest.pipeline.ClientProxies
的代理属性


鉴于上述情况,配置代理似乎是可行的,但我不了解设置代理的正确方法。

首先,msrest正在使用请求,因此我假设您阅读了。还要注意,
请求.Session
对象有一个
trust\u env
属性,默认情况下该属性为
True
,用于读取一些env变量,如
HTTP\u PROXY

客户端的配置有一个
proxies
属性,正如您提到的
ClientProxies
类。此类本身有一个
proxies
dict属性和一个要添加到此dict中的
add
方法。此类还有一个
use\u env\u settings
布尔属性

假设您有
NetworkManagementClient
client
变量实例,那么您可以:

  • 只需使用HTTP\u代理/HTTPS\u代理即可。请注意,可以使用禁用环境变量

    client.config.proxies.use\u env\u settings=False

    这只是请求的
    trust\u env
    的别名

  • 定义您自己的代理:

    client.config.proxies.add('http','http://example.org:8080)

    这个调用实际上相当于

    会话.get(url,代理={'http':'http://example.org:8080“})

(我在MS拥有msrest)