プロキシは、多くの場合、次の場合に必要になります。
- 企業のファイアウォールの内側にいる
- ネットワーク トラフィックがセキュリティ アプライアンスを通過する必要がある
- デバッグまたはルーティングにカスタム プロキシを使用する場合
組織でインターネット リソースにアクセスするためにプロキシ サーバーを使用する必要がある場合は、Azure SDK for Python を使用するためにプロキシ サーバー情報を含む環境変数を設定する必要があります。 環境変数 (HTTP_PROXYとHTTPS_PROXY) を設定すると、Azure SDK for Python は実行時にプロキシ サーバーを使用します。
プロキシ サーバーの URL には、ユーザー名とパスワードの組み合わせが省略可能な形式 http[s]://[username:password@]<ip_address_or_domain>:<port>/
があります。
プロキシ情報は、IT/ネットワーク チーム、ブラウザー、またはネットワーク ユーティリティから取得できます。
その後、環境変数を使用してプロキシをグローバルに構成することも、 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 Storage を使用 する」の次のコードでは、 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" }