Comment configurer des proxys pour le Kit de développement logiciel (SDK) Azure pour Python

Si votre organisation nécessite l’utilisation d’un serveur proxy pour accéder aux ressources Internet, vous devez définir une variable d’environnement avec les informations du serveur proxy pour utiliser le Kit de développement logiciel (SDK) Azure pour Python. La définition des variables d’environnement (HTTP_PROXY et HTTPS_PROXY) entraîne l’utilisation du Kit de développement logiciel (SDK) Azure pour Python au moment de l’exécution.

Une URL de serveur proxy a le formulaire dans http[s]://[username:password@]<ip_address_or_domain>:<port>/ lequel la combinaison nom d’utilisateur et mot de passe est facultative.

Vous pouvez ensuite configurer un proxy globalement à l’aide de variables d’environnement, ou spécifier un proxy en passant un argument nommé proxies à un constructeur de client ou une méthode d’opération spécifique.

Configuration globale

Pour configurer globalement un proxy pour votre script ou votre application, définissez des variables d’environnement HTTP_PROXY ou HTTPS_PROXY avec l’URL du serveur. Ces variables fonctionnent avec n’importe quelle version des bibliothèques Azure. Notez que HTTPS_PROXY cela ne signifie pas le HTTPS proxy, mais le proxy pour les https:// requêtes.

Elles sont ignorées si vous passez le paramètre use_env_settings=False à un constructeur d’objet client ou à une méthode d’opération.

Définir à partir de la ligne de commande

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

Définir dans le code Python

Vous pouvez définir des paramètres de proxy à l’aide de variables d’environnement, sans configuration personnalisée nécessaire.

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"

Configuration personnalisée

Définir dans le code Python par client ou par méthode

Pour une configuration personnalisée, vous pouvez spécifier un proxy pour un objet client ou une méthode d’opération spécifique. Spécifiez un serveur proxy avec un argument nommé proxies.

Par exemple, le code suivant de l’article Exemple : Utiliser le stockage Azure spécifie un proxy HTTPS avec des informations d’identification de l’utilisateur avec le constructeur BlobClient. Dans ce cas, l’objet provient de la bibliothèque azure.storage.blob, qui est basée sur azure.core.

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" }