Come configurare i proxy per l'Azure SDK per Python

Spesso è necessario un proxy se:

  • Sei dietro un firewall aziendale.
  • Il traffico di rete deve attraversare un'appliance di sicurezza.
  • Si vuole usare un proxy personalizzato per il debug o il routing.

Se l'organizzazione richiede un server proxy per accedere alle risorse Internet, impostare una variabile di ambiente con le informazioni sul server proxy prima di usare il Azure SDK per Python. Quando si impostano le variabili di ambiente HTTP_PROXY e HTTPS_PROXY, il Azure SDK per Python usa il server proxy in fase di esecuzione.

Un URL del server proxy ha il formato http[s]://[username:password@]<ip_address_or_domain>:<port>/, dove la combinazione di nome utente e password è facoltativa.

È possibile ottenere le informazioni sul proxy dal team IT o di rete, dal browser o dalle utilità di rete.

È possibile configurare un proxy a livello globale usando le variabili di ambiente. È anche possibile configurare un proxy per un singolo costruttore client o metodo di operazione passando un argomento denominato proxies.

Configurazione Globale

Per configurare un proxy globalmente per il tuo script o applicazione, definisci le variabili d'ambiente HTTP_PROXY o HTTPS_PROXY con l'URL del server. Queste variabili funzionano con qualsiasi versione delle librerie Azure. Si noti che HTTPS_PROXY non significa un proxy HTTPS. Specifica il proxy da utilizzare per le richieste https://.

Se si passa il parametro use_env_settings=False a un costruttore di oggetti client o a un metodo di operazione, l'SDK ignora queste variabili di ambiente.

Imposta dalla riga di comando

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

Inserito nel codice Python

Impostare le impostazioni proxy usando le variabili di ambiente. Non è necessaria alcuna configurazione personalizzata.

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"

Configurazione personalizzata

Impostare un proxy nel codice Python per un client o un metodo

Per la configurazione personalizzata, specificare un proxy per un oggetto client o un metodo operativo specifico. Usare un argomento denominato proxies.

Ad esempio, il codice seguente dell'articolo Example: use Azure storage specifica un proxy HTTPS con credenziali utente nel costruttore BlobClient. In questo caso, l'oggetto proviene dalla azure.storage.blob libreria , che si basa su 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" }