Partager via


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

Un proxy est souvent nécessaire si :

  • Vous êtes derrière un pare-feu d’entreprise
  • Votre trafic réseau doit passer par une appliance de sécurité
  • Vous souhaitez utiliser un proxy personnalisé pour le débogage ou le routage

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) permet au SDK Azure pour Python d’utiliser le serveur de proxy pendant l’exécution.

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

Vous pouvez obtenir vos informations de proxy auprès de votre équipe informatique/réseau, à partir de votre navigateur ou à partir d’utilitaires réseau.

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

Configuration globale

Pour configurer un proxy globalement pour votre script ou application, définissez les 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 ne signifie pas proxy pour HTTPS, mais proxy pour les requêtes https://.

Ces variables d’environnement 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 les informations d’identification de l’utilisateur avec le BlobClient constructeur. 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" }