python azure functions v2 msiauthentication
python azure functions v2 msiauthentication
我试图通过 运行.ps1 脚本设置 MSI_ENDPOINT 和 MSI_SECRET 来弄清楚我们可以在 v1 中做什么。功能将使用服务分配的身份访问许多其他服务。有没有办法设置它,以便我的本地开发环境也可以 运行 完全相同的脚本?
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from msrestazure.azure_active_directory import MSIAuthentication
credentials = MSIAuthentication()
key_vault_client = KeyVaultClient(credentials)
当我尝试在本地调试时,函数失败并出现以下错误
Executed 'Functions.stat-based-monitor' (Failed, Id=5611b477-976a-47e0-bb87-db06571eb3b7)
System.Private.CoreLib: Exception while executing function: Functions.stat-based-monitor. System.Private.CoreLib: Result: Failure
Exception: ConnectionError: HTTPConnectionPool(host='...', port=80): Max retries exceeded with url: /metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10051] A socket operation was attempted to an unreachable network',))
有趣的是,如果我 运行 这些行在 azure 虚拟机上而不是我的本地开发箱上,它会按预期执行 运行。 msiauth 是否需要 Azure VM?
运行 Azure CLI az 登录并验证您的工作站
- 确保您已 Azure CLI 2.0.x 安装
- 运行 Azure CLI 中的 az 登录
- 将本地环境中的代码输入网络对话框
这应该为您的本地环境提供适当的开发上下文,以便从密钥保管库端点访问值。
来自 Azure Docs
的更多详细信息
截至 2019 年 3 月,托管身份仅在 Azure VM 等 Azure 资源上受支持,尚不支持本地开发箱。
我试图通过 运行.ps1 脚本设置 MSI_ENDPOINT 和 MSI_SECRET 来弄清楚我们可以在 v1 中做什么。功能将使用服务分配的身份访问许多其他服务。有没有办法设置它,以便我的本地开发环境也可以 运行 完全相同的脚本?
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from msrestazure.azure_active_directory import MSIAuthentication
credentials = MSIAuthentication()
key_vault_client = KeyVaultClient(credentials)
当我尝试在本地调试时,函数失败并出现以下错误
Executed 'Functions.stat-based-monitor' (Failed, Id=5611b477-976a-47e0-bb87-db06571eb3b7) System.Private.CoreLib: Exception while executing function: Functions.stat-based-monitor. System.Private.CoreLib: Result: Failure Exception: ConnectionError: HTTPConnectionPool(host='...', port=80): Max retries exceeded with url: /metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10051] A socket operation was attempted to an unreachable network',))
有趣的是,如果我 运行 这些行在 azure 虚拟机上而不是我的本地开发箱上,它会按预期执行 运行。 msiauth 是否需要 Azure VM?
运行 Azure CLI az 登录并验证您的工作站
- 确保您已 Azure CLI 2.0.x 安装
- 运行 Azure CLI 中的 az 登录
- 将本地环境中的代码输入网络对话框
这应该为您的本地环境提供适当的开发上下文,以便从密钥保管库端点访问值。
来自 Azure Docs
的更多详细信息截至 2019 年 3 月,托管身份仅在 Azure VM 等 Azure 资源上受支持,尚不支持本地开发箱。