Dar a un cliente de Boto3 un mapa de proxy explícito
Pase Config.proxies de botocore al constructor del cliente para elegir rutas sin modificar las tripas de botocore.
Boto3 acepta una política de proxy explícita mediante el objeto 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)
Las claves del mapa eligen el protocolo de destino. Los valores describen el punto de conexión del proxy. Este ejemplo envía las solicitudes de servicio HTTP y HTTPS por un único proxy HTTP de reenvío. Para una prueba permitida de un punto de conexión público de AWS sin cuenta de proxy, una entrada HTTP de la lista de proxies HTTP puede proporcionar esas dos URL.
Un valor https:// requeriría en cambio un escucha de proxy que acepte una conexión TLS del cliente. No cambie el esquema del valor solo para que coincida con la clave HTTPS.
Config.proxies anula la selección de proxy de las variables de entorno HTTP_PROXY y HTTPS_PROXY para ese cliente. Otros clientes pueden construirse con sus propios objetos Config; construir este no cambia una variable de entorno de todo el proceso.
Conserve cualquier otra opción necesaria del cliente, como la región y la política de reintentos, al integrar esto en una aplicación. Las credenciales de AWS siguen en la configuración habitual de credenciales de la aplicación. No hace falta modificar EndpointCreator ni otro método privado de botocore.
Para una conexión TLS a un proxy HTTPS, Config también tiene opciones proxies_config como proxy_ca_bundle y proxy_client_cert. Se refieren a la confianza y a la autenticación con certificado de cliente en la conexión del proxy. Son independientes de elegir el punto de conexión del servicio de AWS o de firmar solicitudes de la API de AWS.