다음을 통해 공유


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

다음과 같은 경우 프록시가 필요한 경우가 많습니다.

  • 회사 방화벽 뒤에 있습니다.
  • 네트워크 트래픽이 보안 어플라이언스 통과해야 합니다.
  • 디버깅 또는 라우팅에 사용자 지정 프록시를 사용하려고 합니다.

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

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

IT/네트워크 팀, 브라우저 또는 네트워크 유틸리티에서 프록시 정보를 가져올 수 있습니다.

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

글로벌 설정

스크립트 또는 앱에 대한 프록시를 전역적으로 구성하려면 서버 URL과 함께 HTTP_PROXY 또는 HTTPS_PROXY 환경 변수를 정의하십시오. 이러한 변수는 모든 버전의 Azure 라이브러리에서 작동합니다. HTTPS_PROXYHTTPS 프록시를 의미하는 것이 아니라 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 Storage를 사용하여 생성자와 함께 사용자 자격 증명이 있는 HTTPS 프록시를 BlobClient 지정합니다. 이 경우 개체는 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" }