Boto3 akzeptiert eine explizite Proxy-Richtlinie über das Config-Objekt von 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)

Die Schlüssel der Zuordnung wählen das Zielprotokoll. Die Werte beschreiben den Proxy-Endpunkt. Dieses Beispiel sendet sowohl HTTP- als auch HTTPS-Dienstanforderungen über einen einzigen HTTP-Forward-Proxy. Für einen erlaubten Test eines öffentlichen AWS-Endpunkts ohne Proxy-Konto kann ein HTTP-Eintrag aus der HTTP-Proxy-Liste diese beiden URLs liefern.

Ein https://-Wert würde stattdessen einen Proxy-Listener erfordern, der eine TLS-Verbindung vom Client annimmt. Ändern Sie das Schema des Werts nicht nur, damit er zum HTTPS-Schlüssel passt.

Config.proxies überschreibt die Proxy-Auswahl aus den Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY für diesen Client. Andere Clients können mit eigenen Config-Objekten erstellt werden; das Erstellen dieses Objekts ändert keine prozessweite Umgebungsvariable.

Behalten Sie alle anderen erforderlichen Client-Optionen wie Region und Wiederholungsrichtlinie bei, wenn Sie dies in eine Anwendung einbinden. AWS-Anmeldedaten bleiben in der normalen Anmeldedatenkonfiguration der Anwendung. Eine Änderung von EndpointCreator oder einer anderen privaten botocore-Methode ist nicht nötig.

Für eine TLS-Verbindung zu einem HTTPS-Proxy hat Config außerdem proxies_config-Optionen wie proxy_ca_bundle und proxy_client_cert. Diese betreffen Vertrauen und Client-Zertifikatsauthentifizierung auf der Proxy-Verbindung. Sie sind unabhängig von der Wahl des AWS-Dienstendpunkts oder dem Signieren von AWS-API-Anfragen.

Ähnliche Artikel