如何为用于 Python 的 Azure SDK 配置代理
如果你的组织需要使用代理服务器来访问 Internet 资源,则需要使用代理服务器信息设置环境变量,以使用用于 Python 的 Azure SDK。 设置环境变量(HTTP_PROXY和HTTPS_PROXY)会导致用于 Python 的 Azure SDK 在运行时使用代理服务器。
代理服务器 URL 采用可选用户名和密码组合的形式 http[s]://[username:password@]<ip_address_or_domain>:<port>/
。
然后,可以使用环境变量来全局配置代理,也可以通过将名为 proxies
的参数传递给单个客户端构造函数或操作方法来指定代理。
全局配置
若要为脚本或应用全局配置代理,请使用服务器 URL 定义 HTTP_PROXY
或 HTTPS_PROXY
环境变量。 这些变量适用于任何版本的 Azure 库。 请注意, HTTPS_PROXY
这并不意味着 HTTPS
代理,而是请求的 https://
代理。
如果将参数 use_env_settings=False
传递给客户端对象构造函数或操作方法,则将忽略这些环境变量。
从命令行设置
rem Non-authenticated HTTP server:
set HTTP_PROXY=http://10.10.1.10:1180
rem Authenticated HTTP server:
set HTTP_PROXY=http://username:password@10.10.1.10:1180
rem Non-authenticated HTTPS server:
set HTTPS_PROXY=http://10.10.1.10:1180
rem Authenticated HTTPS server:
set HTTPS_PROXY=http://username:password@10.10.1.10:1180
在 Python 代码中设置
可以使用环境变量设置代理设置,无需自定义配置。
import os
os.environ["HTTP_PROXY"] = "http://10.10.1.10:1180"
# Alternate URL and variable forms:
# os.environ["HTTP_PROXY"] = "http://username:password@10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://username:password@10.10.1.10:1180"
自定义配置
按客户端或按方法设置 Python 代码
对于自定义配置,可以为特定客户端对象或操作方法指定代理。 使用名为 <
例如,文章示例:使用 Azure 存储中的以下代码使用 BlobClient
构造函数指定了具有用户凭据的 HTTPS 代理。 在此案例中,对象来自 azure.storage.blob 库,该库基于 azure.core。
from azure.identity import DefaultAzureCredential
# Import the client object from the SDK library
from azure.storage.blob import BlobClient
credential = DefaultAzureCredential()
storage_url = "https://<storageaccountname>.blob.core.windows.net"
blob_client = BlobClient(storage_url, container_name="blob-container-01",
blob_name="sample-blob.txt", credential=credential,
proxies={ "https": "https://username:password@10.10.1.10:1180" }
)
# Other forms that the proxy URL might take:
# proxies={ "http": "http://10.10.1.10:1180" }
# proxies={ "http": "http://username:password@10.10.1.10:1180" }
# proxies={ "https": "https://10.10.1.10:1180" }