Come configurare i proxy per Azure SDK per Python
Se l'organizzazione richiede l'uso di un server proxy per accedere alle risorse Internet, è necessario impostare una variabile di ambiente con le informazioni sul server proxy per usare Azure SDK per Python. L'impostazione delle variabili di ambiente (HTTP_PROXY e HTTPS_PROXY) fa sì che Azure SDK per Python usi il server proxy in fase di esecuzione.
Un URL del server proxy ha il formato http[s]://[username:password@]<ip_address_or_domain>:<port>/
in cui la combinazione di nome utente e password è facoltativa.
È quindi possibile configurare un proxy a livello globale usando le variabili di ambiente oppure si può specificare un proxy passando un argomento denominato proxies
a un singolo costruttore client o a un metodo di operazione.
Configurazione globale
Per configurare un proxy a livello globale per lo script o l'app, definire la variabile di ambiente HTTP_PROXY
o HTTPS_PROXY
con l'URL del server. Queste variabili funzionano con qualsiasi versione delle librerie di Azure. Si noti che HTTPS_PROXY
non significa HTTPS
proxy, ma il proxy per https://
le richieste.
Queste variabili di ambiente vengono ignorate se si passa il parametro use_env_settings=False
a un costruttore di oggetti client o a un metodo di operazione.
Impostare 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
Impostare nel codice Python
È possibile impostare le impostazioni proxy usando le variabili di ambiente, senza alcuna configurazione personalizzata necessaria.
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 nel codice Python per client o per metodo
Per la configurazione personalizzata, è possibile specificare un proxy per un oggetto client o un metodo operativo specifico. Specificare un server proxy con un argomento denominato proxies
.
Ad esempio, il codice seguente tratto dall'articolo Esempio: Usare le librerie di Azure con Archiviazione di Azure specifica un proxy HTTPS con le credenziali utente con il costruttore BlobClient
. In questo caso l'oggetto deriva dalla libreria azure.storage.blob, che è basata 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" }