我做错了什么试图在我的功能v2应用程序设置以下设置。
@Microsoft.KeyVault(SecretUri=<uri>)
在函数中读取这些内容,我得到的是完整字符串,而不是我所期望的密钥库中的连接字符串。
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>)"
我需要多走几步吗?
在启用MSI for Azure功能后,我进入了我的密钥库并添加了一个访问策略,这样我的Azure功能应用程序就有了读取机密的权限。该特性应该适用于Azure中托管的所有版本的Azure函数。它在本地将不起作用。
因此,转到您的azure密钥库,并将MSI原则添加到它中,并给予get
权限来秘密。
有关更多详细信息,您可以参考本文和本期文章。
我使用HTTPTrigger创建了一个简单的Azure函数,该函数通过Azure中的门户返回密钥集的秘密值。该值存储为 https://medium.com/statuscode/getting-key-vault-secrets-in-azure-functions-37620FD20A0B
[Get-AzureKeyVaultSecret],PSInvalidOperationException FullyQualifiedErrorId:InvalidOperation,Microsoft.azure.commands.keyVault.GetAzureKeyVaultSecret 2018-04-14T17:45:00.709[Error]执行函数时出现异常:functions.
我的web api项目有用于检索密钥库机密的nuget包。因此,在我的global.asax文件中,我有以下内容: 我发表了这篇文章,它起作用了,但它“感觉”不对。 另一个选择是遵循本文https://blog.falafel.com/keeping-secrets-with-azure-key-vault/的内容,但这需要我将KeyVault API包与数据访问耦合起来。
这个Python脚本被部署为从Azure函数应用程序运行在Linux消费计划上,这个脚本被期望从Azure密钥库中读取机密。 除了代码部署之外,还进行了以下配置 null 此错误说明应用程序没有密钥库上的机密获取权限,但如上所述,将角色分配给在密钥库上具有阅读器角色的功能应用程序。 配置中可能出现的问题是什么?如何缓解?
我试图使用Azure Key Vault来存储实体框架的web api连接字符串。理想情况下,我希望避免将key vault nuget包与我的数据访问代码耦合。我的dbContext类有两个构造函数: 我的代码使用了从web配置中获取连接字符串的无参数构造函数。我在某些地方实例化了一个新的MyDbContext对象,这禁止了使用注入的解决方案。 我采用的路线是在我的dbcontext上设置一个带