Jak skonfigurować serwery proxy dla zestawu Azure SDK dla języka Python

Często potrzebujesz serwera proxy, jeśli:

  • Znajdujesz się za zaporą firmową.
  • Ruch sieciowy musi przechodzić przez urządzenie zabezpieczające.
  • Chcesz użyć niestandardowego serwera proxy do debugowania lub routingu.

Jeśli twoja organizacja wymaga, aby serwer proxy uzyskiwał dostęp do zasobów internetowych, ustaw zmienną środowiskową z informacjami o serwerze proxy przed użyciem Azure SDK dla Python. Po ustawieniu zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY Azure SDK dla Python używa serwera proxy w czasie wykonywania.

Adres URL serwera proxy ma postać http[s]://[username:password@]<ip_address_or_domain>:<port>/, gdzie kombinacja nazwy użytkownika i hasła jest opcjonalna.

Informacje o serwerze proxy można uzyskać od zespołu IT lub sieci, z przeglądarki lub z narzędzi sieciowych.

Serwer proxy można skonfigurować globalnie przy użyciu zmiennych środowiskowych. Można również skonfigurować serwer proxy dla pojedynczego konstruktora klienta lub metody operacji, przekazując argument o nazwie proxies.

Konfiguracja globalna

Aby skonfigurować serwer proxy globalnie dla skryptu lub aplikacji, zdefiniuj HTTP_PROXY lub HTTPS_PROXY zmienne środowiskowe przy użyciu adresu URL serwera. Te zmienne działają z dowolną wersją bibliotek platformy Azure. Pamiętaj, że nie oznacza to HTTPS_PROXY serwera proxy HTTPS. Określa serwer proxy do użycia dla https:// żądań.

Jeśli przekażesz parametr use_env_settings=False do konstruktora obiektu klienta lub metody operacji, zestaw SDK zignoruje te zmienne środowiskowe.

Ustaw z wiersza polecenia

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

Umiejscowione w kodzie Pythona

Ustaw ustawienia serwera proxy przy użyciu zmiennych środowiskowych. Nie potrzebujesz żadnej konfiguracji niestandardowej.

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"

Konfiguracja niestandardowa

Ustawianie serwera proxy w kodzie Python dla klienta lub metody

W przypadku konfiguracji niestandardowej określ serwer proxy dla określonego obiektu lub metody operacji klienta. Użyj argumentu o nazwie proxies.

Na przykład poniższy kod z artykułu Przykład: używanie usługi Azure Storage określa serwer proxy HTTPS z poświadczeniami użytkownika w konstruktorze BlobClient. W tym przypadku obiekt pochodzi z azure.storage.blob biblioteki, która jest oparta na .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" }