2

我试图通过 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?

4

2 回答 2

2

截至 2019 年 3 月,托管标识仅在 Azure 资源(如 Azure VM)上受支持,本地开发盒尚不受支持。

于 2019-03-04T23:21:30.933 回答
0

运行 Azure CLI az login 并验证您的工作站

  1. 确保已安装Azure CLI 2.0.x
  2. 在 Azure CLI 中运行 az login
  3. 将本地环境中的代码输入到 Web 对话框中

这应该为您的本地环境提供适当的开发上下文,以访问来自密钥保管库端点的值。

Azure Docs中的更多详细信息

于 2019-01-24T23:41:52.790 回答