python - key 错误 : 'IDENTITY_ENDPOINT' error in Azure environment

标签 python sql-server azure azure-managed-identity

我已在 Azure Linux 环境中部署了我的应用程序。

我按照官方的python示例:https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=python

import os
import requests

identity_endpoint = os.environ["IDENTITY_ENDPOINT"]
identity_header = os.environ["IDENTITY_HEADER"]

def get_bearer_token(resource_uri):
    token_auth_uri = f"{identity_endpoint}?resource={resource_uri}&api-version=2019-08-01"
    head_msi = {'X-IDENTITY-HEADER':identity_header}

    resp = requests.get(token_auth_uri, headers=head_msi)
    access_token = resp.json()['access_token']

    return access_token

为什么我收到 KeyError: 'IDENTITY_ENDPOINT' 错误?我需要做额外的配置吗?

最佳答案

您可能尚未完成所提供链接中的某个步骤。当您将托管标识添加到 Azure 中的应用程序时,会添加这些环境变量。

该链接提供了多种添加身份的方法,但为了简单起见,现在只需使用系统分配的身份即可。

因此,对于您在 Azure 门户中创建的应用服务,请在“身份”下检查是否已将其设置为开启:

Adding a system identity

要确认这已创建我们期望的 2 个环境变量,请再次在应用服务的门户中转到 SSH session (这取代了旧的控制台选项)。

SSH

在 shell 中,输入 printenv 以查看所有设置的环境变量。查找您的应用当前找不到的 2 个:

Identity env vars

如果它们丢失了,请告诉我,至少我们可以更好地进一步挖掘。

关于python - key 错误 : 'IDENTITY_ENDPOINT' error in Azure environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69203665/

相关文章:

sql-server - 看不到 SQL Server 导入和导出向导中列出的数据库

azure - 我可以自己设置 Azure WebJob 仪表板状态吗?

.net - 如何创建 Dockerfile 以在 Windows 2016 容器中运行 Docker?

Azure Devops Rest API 创建个人访问 token (PAT) -- patTokenError : userIdRequired

python - 测量削波量

python - 搁置模块不适用于 "with"语句

python - Odoo 如何设置创建发票按钮的用户访问组?

SQL- 七日周报(星期日至星期六)

python - Django View 集错误: 'QuerySet' object has no attribute 'title'

Sql 查询,选择唯一标识符给出 - 将数据类型 varchar 转换为 uniqueidentifier 时出错