Boto3 принимает явную политику прокси через объект Config библиотеки botocore:

import boto3
from botocore.config import Config

network = Config(proxies={
    'http': 'http://proxy.example:8080',
    'https': 'http://proxy.example:8080',
})
s3 = boto3.client('s3', config=network)

Ключи карты выбирают протокол назначения. Значения описывают конечную точку прокси. Этот пример отправляет и HTTP-, и HTTPS-запросы к сервисам через один прямой HTTP-прокси. Для разрешённой проверки публичной конечной точки AWS без прокси-аккаунта HTTP-запись из списка HTTP-прокси может дать оба этих URL.

Значение https:// вместо этого потребует прокси-слушатель, принимающий TLS-соединение от клиента. Не меняйте схему значения только ради соответствия ключу HTTPS.

Config.proxies переопределяет выбор прокси из переменных среды HTTP_PROXY и HTTPS_PROXY для этого клиента. Другие клиенты можно создавать со своими объектами Config; создание этого не меняет переменную среды всего процесса.

Сохраняйте любые другие нужные параметры клиента, такие как регион и политика повторных попыток, когда встраиваете это в приложение. Учётные данные AWS остаются в обычной конфигурации учётных данных приложения. Изменять EndpointCreator или другой закрытый метод botocore не нужно.

Для TLS-соединения с HTTPS-прокси у Config есть также параметры proxies_config, например proxy_ca_bundle и proxy_client_cert. Они касаются доверия и аутентификации клиентского сертификата в соединении через прокси. Они отделены от выбора конечной точки сервиса AWS или подписи запросов AWS API.

Похожие статьи