Azure 函数 key 保管库应用程序设置不起作用

标签 azure azure-functions azure-keyvault

尝试在 Functions v2 应用设置中设置以下内容时我做错了什么。

@Microsoft.KeyVault(SecretUri=<uri>)

在函数内部读取此内容,我得到了完整的字符串,而不是像我预期的那样从 keystore 中获取连接字符串。

var config = new ConfigurationBuilder()
                .SetBasePath(context.FunctionAppDirectory)
                .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables()
                .Build();

var value = config["cstring"];
var connectionString = Environment.GetEnvironmentVariable("cstring");

log.Info(value); // Prints "@Microsoft.KeyVault(SecretUri=<uri>)"
log.Info(connectionString); // Prints "@Microsoft.KeyVault(SecretUri=<uri>)"

我需要采取更多步骤吗?

作为有权访问 key 保管库的 MSI 的功能。

多个在线教程使这看起来非常简单并且开箱即用。

最佳答案

为 Azure Function 启用 MSI 后,我进入 key 保管库并添加访问策略,以便我的 Azure Function 应用程序有权读取 secret 。该功能应适用于 Azure 中托管的所有版本的 Azure Functions。它在本地不起作用。

因此,请转到您的 Azure Key Vault 并向其添加 MSI 原则,并授予 Get secret 权限。

enter image description here

更多详情可以引用这个article还有这个issue .

关于Azure 函数 key 保管库应用程序设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146488/

相关文章:

java - 如何在java azure函数中使用@BlobOutput或@TableOutput

Azure DevOps -> 管道 -> 库 -> 访问 Azure Key Vault -> Key Vault 不允许从所有网络访问

c# - 通过带有前缀的 yaml 从 keyvault 动态获取多个 secret

node.js - 如何在nodejs sdk v12中生成带有SAS签名的azure blob url?

azure - 如何在 Windows Azure 上启用 CDN

azure - 如何将动态参数传递给Azure Function

c# - MessageLockLostException : The lock supplied is invalid. 锁已过期,或者消息已从队列中删除

azure-functions - Azure 函数 - 从 Azure key 保管库获取服务总线连接字符串

azure - 云端Raspberry pi传感器数据监控

Azure 中的 Tomcat 负载平衡