Поделиться через


Настройка прокси-серверов для пакета 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:[email protected]:1180

rem Non-authenticated HTTPS server:
set HTTPS_PROXY=http://10.10.1.10:1180

rem Authenticated HTTPS server:
set HTTPS_PROXY=http://username:[email protected]: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:[email protected]:1180"
# os.environ["HTTPS_PROXY"] = "http://10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://username:[email protected]: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:[email protected]:1180" }
)

# Other forms that the proxy URL might take:
# proxies={ "http": "http://10.10.1.10:1180" }
# proxies={ "http": "http://username:[email protected]:1180" }
# proxies={ "https": "https://10.10.1.10:1180" }