我试图通过 run.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)
当我尝试在本地调试时,函数失败并出现以下错误
执行'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): Max retries exceeded with 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?