Konfigurieren von Proxys für das Azure SDK für Python

Wenn Ihre Organisation die Verwendung eines Proxyservers für den Zugriff auf Internetressourcen erfordert, müssen Sie eine Umgebungsvariable mit den Proxyserverinformationen festlegen, um das Azure SDK für Python zu verwenden. Das Festlegen der Umgebungsvariablen (HTTP_PROXY und HTTPS_PROXY) bewirkt, dass das Azure SDK für Python den Proxyserver zur Laufzeit verwendet.

Eine Proxyserver-URL weist das Formular http[s]://[username:password@]<ip_address_or_domain>:<port>/ auf, in dem die Kombination aus Benutzername und Kennwort optional ist.

Anschließend können Sie einen Proxy global konfigurieren, indem Sie Umgebungsvariablen verwenden, oder Sie können einen Proxy angeben, indem Sie ein Argument mit dem Namen proxies an einen einzelnen Clientkonstruktor oder eine Vorgangsmethode übergeben.

Globale Konfiguration

Um einen Proxy global für Ihr Skript oder Ihre App zu konfigurieren, definieren Sie HTTP_PROXY- oder HTTPS_PROXY-Umgebungsvariablen mit der Server-URL. Diese Variablen funktionieren mit einer beliebigen Version der Azure-Bibliotheken. Beachten Sie, dass HTTPS_PROXY kein Proxy, sondern der Proxy für https:// Anforderungen bedeutetHTTPS.

Diese Umgebungsvariablen werden ignoriert, wenn Sie den Parameter use_env_settings=False an einen Clientobjektkonstruktor oder eine Vorgangsmethode übergeben.

Festlegen über die Befehlszeile

rem Non-authenticated HTTP server:
set HTTP_PROXY=http://10.10.1.10:1180

rem Authenticated HTTP server:
set HTTP_PROXY=http://username:password@10.10.1.10:1180

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

rem Authenticated HTTPS server:
set HTTPS_PROXY=http://username:password@10.10.1.10:1180

Festlegen im Python-Code

Sie können Proxyeinstellungen mithilfe von Umgebungsvariablen festlegen, ohne dass eine benutzerdefinierte Konfiguration erforderlich ist.

import os
os.environ["HTTP_PROXY"] = "http://10.10.1.10:1180"

# Alternate URL and variable forms:
# os.environ["HTTP_PROXY"] = "http://username:password@10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://username:password@10.10.1.10:1180"

Benutzerdefinierte Konfiguration

Festlegen in Python-Code pro Client oder pro Methode

Für die benutzerdefinierte Konfiguration können Sie einen Proxy für ein bestimmtes Clientobjekt oder eine bestimmte Vorgangsmethode angeben. Geben Sie einen Proxyserver mit einem Argument namens proxiesan.

Der folgende Code aus dem Artikel Beispiel: Verwenden von Azure-Speicher gibt z. B. einen HTTPS-Proxy mit Benutzeranmeldeinformationen mit dem BlobClient-Konstruktor an. In diesem Fall stammt das Objekt aus der azure.storage.blob-Bibliothek, die auf azure.core basiert.

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:password@10.10.1.10:1180" }
)

# Other forms that the proxy URL might take:
# proxies={ "http": "http://10.10.1.10:1180" }
# proxies={ "http": "http://username:password@10.10.1.10:1180" }
# proxies={ "https": "https://10.10.1.10:1180" }