run.ps1 スクリプトを介して MSI_ENDPOINT と MSI_SECRET を設定することにより、v1 で何ができるかを理解しようとしています。関数は、サービス割り当て ID を使用して他の多くのサービスにアクセスします。これを設定して、ローカルの開発環境でもまったく同じスクリプトを実行できるようにする方法はありますか?
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from msrestazure.azure_active_directory import MSIAuthentication
credentials = MSIAuthentication()
key_vault_client = KeyVaultClient(credentials)
ローカルでデバッグしようとすると、関数は次のエラーで失敗します
'Functions.stat-based-monitor' を実行しました (失敗、Id=5611b477-976a-47e0-bb87-db06571eb3b7) System.Private.CoreLib: 関数の実行中に例外が発生しました: Functions.stat-based-monitor。System.Private.CoreLib: 結果: 失敗の例外: ConnectionError: HTTPConnectionPool(host='...', port=80): URL で最大再試行回数を超えました: /metadata/identity/oauth2/token?resource=https%3A%2F %2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (原因: NewConnectionError(': 新しい接続の確立に失敗しました: [WinError 10051] 到達不能なネットワークに対してソケット操作が試行されました',))
興味深いことに、これらの行をローカルの開発ボックスではなく azure vm で実行すると、期待どおりに実行されます。msiauth には Azure VM が必要ですか?