Python용 Azure SDK에 대한 프록시를 구성하는 방법

조직에서 인터넷 리소스에 액세스하기 위해 프록시 서버를 사용해야 하는 경우 Python용 Azure SDK를 사용하도록 프록시 서버 정보를 사용하여 환경 변수를 설정해야 합니다. 환경 변수(HTTP_PROXY 및 HTTPS_PROXY)를 설정하면 Python용 Azure SDK가 런타임에 프록시 서버를 사용합니다.

프록시 서버 URL에는 사용자 이름과 암호 조합이 선택 사항인 양식 http[s]://[username:password@]<ip_address_or_domain>:<port>/ 이 있습니다.

그런 다음, 환경 변수를 사용하여 전역적으로 프록시를 구성하거나, proxies라는 인수를 개별 클라이언트 생성자 또는 작업 메서드에 전달하여 프록시를 지정할 수 있습니다.

전역 구성

스크립트 또는 앱에 대한 프록시를 전역적으로 구성하려면 서버 URL을 사용하여 HTTP_PROXY 또는 HTTPS_PROXY 환경 변수를 정의합니다. 이러한 변수는 모든 버전의 Azure 라이브러리에서 작동합니다. 프록시가 HTTPS_PROXY 아니라 요청에 대한 https:// 프록시를 의미 HTTPS 합니다.

이러한 환경 변수는 매개 변수 use_env_settings=False 를 클라이언트 개체 생성자 또는 작업 메서드에 전달하는 경우 무시됩니다.

명령줄에서 설정

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

Python 코드에서 설정

사용자 지정 구성 없이 환경 변수를 사용하여 프록시 설정을 설정할 수 있습니다.

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"

사용자 지정 구성

클라이언트별 또는 메서드별 Python 코드에서 설정

사용자 지정 구성의 경우 특정 클라이언트 개체 또는 작업 메서드에 대한 프록시를 지정할 수 있습니다. 인수가 있는 프록시 서버를 지정합니다 proxies.

예를 들어 예제: Azure 스토리지 사용 문서의 다음 코드는 BlobClient 생성자를 사용하여 사용자 자격 증명으로 HTTPS 프록시를 지정합니다. 이 경우 개체는 azure.core를 기반으로 하는 azure.storage.blob 라이브러리에서 가져옵니다.

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" }