Настройка прокси-серверов для пакета SDK Azure для Python

Если вашей организации требуется использовать прокси-сервер для доступа к интернет-ресурсам, необходимо задать переменную среды с сведениями о прокси-сервере для использования пакета SDK Azure для Python. Установка переменных среды (HTTP_PROXY и HTTPS_PROXY) приводит к тому, что пакет SDK Azure для Python будет использовать прокси-сервер во время выполнения.

URL-адрес прокси-сервера имеет форму http[s]://[username:password@]<ip_address_or_domain>:<port>/ , в которой необязательно использовать сочетание имени пользователя и пароля.

Вы можете затем настроить прокси-сервер глобально с помощью переменных среды или указать прокси-сервер, передав аргумент с именем proxies отдельному конструктору клиента или методу операции.

Глобальная конфигурация

Чтобы настроить прокси-сервер глобально для скрипта или приложения, определите переменные среды HTTP_PROXY или HTTPS_PROXY с URL-адресом сервера. Эти переменные работают с любой версией библиотек 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 для каждого клиента или каждого метода

Для пользовательской конфигурации можно указать прокси-сервер для определенного клиентского объекта или метода операции. Укажите прокси-сервер с именем proxiesаргумента.

Например, в следующем коде из статьи Пример. Использование библиотек Azure со службой хранилища Azure указан прокси-сервер HTTPS с учетными данными пользователя с помощью конструктора BlobClient. В этом случае объект берется из библиотеки 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" }