【发布时间】:2020-07-28 15:19:54
【问题描述】:
我在 Python 中有一个 Azure 函数,我从 Key Vault 获得了一个秘密。 Azure Function 是配置了 Managed Identity 的 App Service 的一部分,因此我没有服务主体。要访问 Key Vault,我使用的是 azure 标识库和 DefaultAzureCredential 类。
我的问题是在本地调试此功能时,未检测到凭据。我知道调试器使用不同的 shell,所以没有设置登录环境变量。我试图在 launch.json 中指定“env”属性,但得到一个警告,我不允许添加它,如果我将它重命名为“环境”也是一样的。我还尝试了 InteractiveBrowserCredential 类以使用我的用户帐户登录作为解决方法,但随后凭据被视为不正确而无法访问 Key Vault。
如何设置我的 VS Code 本地调试环境以使用应用服务的托管标识?
这是我的代码的一个例外:
import os
import logging
import azure.functions as func
from azure.storage.blob import BlobServiceClient
from azure.identity import DefaultAzureCredential, UsernamePasswordCredential
from azure.keyvault.secrets import SecretClient
def main(req: func.HttpRequest) -> func.HttpResponse:
vault_url = os.environ['KeyVaultUrl']
credential = DefaultAzureCredential()
secret_client = SecretClient(vault_url=vault_url, credential=credential)
access_key = secret_client.get_secret(os.environ['StorageSecretName'])
谢谢
【问题讨论】:
标签: python azure visual-studio-code