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

Вам часто нужен прокси-сервер, если:

  • Вы находитесь за корпоративным брандмауэром.
  • Сетевой трафик должен пройти через устройство безопасности.
  • Вы хотите использовать настраиваемый прокси-сервер для отладки или маршрутизации.

Если для доступа к интернет-ресурсам требуется прокси-сервер, задайте переменную среды с сведениями о прокси-сервере, прежде чем использовать Azure SDK для Python. Если задать переменные среды HTTP_PROXY и HTTPS_PROXY, Azure SDK для 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 в метод конструктора или операции клиентского объекта, пакет SDK игнорирует эти переменные среды.

Установка из командной строки

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.

Например, следующий код из статьи Example: используйте хранилище 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" }