Donner à un client Boto3 une table de proxy explicite
Passez botocore Config.proxies au constructeur du client pour choisir les routes sans modifier les entrailles de botocore.
Boto3 accepte une politique de proxy explicite via l'objet Config de 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)
Les clés de la table choisissent le protocole de destination. Les valeurs décrivent le point de terminaison du proxy. Cet exemple envoie les requêtes de service HTTP et HTTPS via un seul proxy HTTP de transfert. Pour un test autorisé d'un point de terminaison AWS public sans compte de proxy, une entrée HTTP de la liste de proxys HTTP peut fournir ces deux URL.
Une valeur https:// exigerait plutôt un écouteur de proxy qui accepte une connexion TLS depuis le client. Ne changez pas le schéma de la valeur uniquement pour correspondre à la clé HTTPS.
Config.proxies remplace la sélection de proxy issue des variables d'environnement HTTP_PROXY et HTTPS_PROXY pour ce client. Les autres clients peuvent être construits avec leurs propres objets Config ; construire celui-ci ne modifie aucune variable d'environnement à l'échelle du processus.
Conservez toute autre option client nécessaire, comme la région et la politique de nouvelle tentative, lorsque vous intégrez cela dans une application. Les identifiants AWS restent dans la configuration d'identifiants habituelle de l'application. Aucune modification d'EndpointCreator ni d'une autre méthode privée de botocore n'est nécessaire.
Pour une connexion TLS vers un proxy HTTPS, Config possède aussi des options proxies_config telles que proxy_ca_bundle et proxy_client_cert. Elles concernent la confiance et l'authentification par certificat client sur la connexion au proxy. Elles sont distinctes du choix du point de terminaison du service AWS ou de la signature des requêtes de l'API AWS.