Azure SDK for Python のプロキシを構成する方法

多くの場合、次の場合にプロキシが必要になります。

  • 企業のファイアウォールの内側にいます。
  • ネットワーク トラフィックは、セキュリティ アプライアンスを通過する必要があります。
  • デバッグまたはルーティングにカスタム プロキシを使用する場合。

組織でインターネット リソースにアクセスするためにプロキシ サーバーが必要な場合は、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_PROXYは HTTPS プロキシを意味するわけではないことに注意してください。 https://要求に使用するプロキシを指定します。

パラメーター use_env_settings=False をクライアント オブジェクト コンストラクターまたは操作メソッドに渡すと、SDK はこれらの環境変数を無視します。

コマンド ラインから設定する

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という名前の引数を使用します。

たとえば、記事の次のコード Example: use Azure storageBlobClient コンストラクターでユーザー資格情報を持つ HTTPS プロキシを指定します。 この場合、オブジェクトはazure.storage.blobに基づく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" }