【问题标题】:python azure functions v2 msiauthenticationpython azure 函数 v2 msiauthentication
【发布时间】:2019-01-24 23:19:50
【问题描述】:

我试图通过 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 的监视器。 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 (Caused by NewConnectionError(': 无法建立新连接: [WinError 10051] A socket operation was trying to an unreachable network',))

有趣的是,如果我在 azure vm 而不是本地开发盒上运行这些行,它会按预期运行。 msiauth 是否需要 Azure VM?

【问题讨论】:

    标签: azure-functions azure-managed-identity azure-functions-core-tools


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      更多详情来自Azure Docs

      【讨论】:

      • 出于某种原因,这对我不起作用。我有 azure-cli (2.0.44) 和 Python (Windows) 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] 有趣的是,如果我在 azure vm 而不是我的本地开发盒上运行它,它运行起来就像一个魅力。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 2018-12-31
      • 2019-02-26
      相关资源
      最近更新 更多