Condividi tramite


Come configurare i proxy per l'Azure SDK per Python

Un proxy è spesso necessario se:

  • Sei dietro un firewall aziendale
  • Il traffico della tua rete deve passare attraverso un dispositivo di sicurezza
  • Vuoi usare un proxy personalizzato per il debug o l'instradamento.

Se la vostra organizzazione richiede l'uso di un server proxy per accedere alle risorse internet, sarà necessario impostare una variabile d'ambiente con le informazioni del server proxy per utilizzare l'SDK di Azure per Python. Impostare le variabili d'ambiente (HTTP_PROXY e HTTPS_PROXY) fa sì che l'SDK Azure per Python utilizzi il server proxy durante l'esecuzione.

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

Puoi ottenere le informazioni sul proxy dal tuo team IT/rete, dal tuo browser o da utilità di rete.

È possibile configurare un proxy a livello globale utilizzando le variabili d'ambiente, oppure specificare un proxy passando un argomento denominato proxies a un costruttore di client individuale o a un metodo di operazione.

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. Nota che HTTPS_PROXY non significa HTTPS proxy, ma il proxy per le richieste https://.

Queste variabili d'ambiente vengono ignorate se si passa il parametro use_env_settings=False a un costruttore di oggetti client o a un metodo di operazione.

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:[email protected]:1180

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

rem Authenticated HTTPS server:
set HTTPS_PROXY=http://username:[email protected]:1180

Inserito nel codice Python

Puoi impostare le impostazioni del proxy utilizzando le variabili di ambiente, senza necessità di configurazioni personalizzate.

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

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

Configurazione personalizzata

Imposta nel codice Python per cliente o per metodo

Per la configurazione personalizzata, è possibile specificare un proxy per un oggetto client specifico o un metodo di operazione. Specificare un server proxy con un argomento denominato proxies.

Ad esempio, il seguente codice dell'articolo Esempio: usare lo storage di Azure specifica un proxy HTTPS con credenziali utente utilizzando il costruttore BlobClient. In questo caso, l'oggetto proviene dalla libreria azure.storage.blob, 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:[email protected]:1180" }
)

# Other forms that the proxy URL might take:
# proxies={ "http": "http://10.10.1.10:1180" }
# proxies={ "http": "http://username:[email protected]:1180" }
# proxies={ "https": "https://10.10.1.10:1180" }