gpt4 book ai didi

azure - 如何通过函数应用中的应用程序设置解析 KeyVault 对 secret 的引用?

转载 作者:行者123 更新时间:2023-12-02 07:35:12 25 4
gpt4 key购买 nike

我已经设置了一个单独的测试环境来尝试从 azure key Vault 检索应用程序 secret 。当运行测试函数以返回环境变量时,应用程序设置中的 @Microsoft.KeyVault(...) 引用不会解析为引用的 secret 或文本。

已关注 this创建应用程序服务并根据 key 保管库对其进行身份验证的文档,我已为我的函数创建了一个托管身份,将其添加到 AAD,使用我的 key 保管库中的“获取 secret ”范围为此托管身份创建了特定的访问策略,并尝试无论是否启用应用程序作为用户的读取范围。

运行诊断工具来解析函数应用应用程序设置引用不会产生任何错误。输入应用程序设置为 @Microsoft.KeyVault(SecretUri=SecretUri)

@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret;SecretVersion={version})

似乎没有改变任何东西。我等待了长达半个小时的设置更改才能在 Azure 中复制,并确保我所做的更改是持久的。

这是我返回环境变量的函数应用程序(用 python 编写):

import json
import logging
import os
import azure.functions as func


def main(req=None) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')

try:
name = [os.environ["CLIENTID"]]
except:
name=dict()

for d in os.environ:
name[d]=os.environ[d]
if name:
return func.HttpResponse("Params\n{}".format(json.dumps(name, sort_keys=True, indent=4)))
else:
return func.HttpResponse(
"Please pass a name on the query string or in the request body",
status_code=400
)

我希望能够提取环境变量 CLIENTID。相反,获取该变量失败并返回所有环境变量。如果我无法返回单数变量,我会故意返回所有环境变量,因为我想确保在变量被重命名或存在打字/区分大小写问题时捕获它。

最佳答案

我和你有同样的问题,我为我的功能启用了 MSI 并授予了 azure key Vault 中访问策略的所有权限,但它拒绝了我的访问: enter image description here enter image description here

我在应用程序设置中删除了“CLIENTID”项目,保存更新并再次创建“CLINETID”项目,保存更新。一旦appsettings更新成功,点击编辑按钮,你可以看到它的状态已经解决了: enter image description here测试结果 : enter image description here希望它有帮助。

关于azure - 如何通过函数应用中的应用程序设置解析 KeyVault 对 secret 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com