gpt4 book ai didi

azure - Azure Key Vault 是否可以与函数一起使用来存储队列触发器的连接字符串?

转载 作者:行者123 更新时间:2023-12-02 00:08:00 24 4
gpt4 key购买 nike

我能够在函数应用程序中使用 Key Vault as described here但是当我尝试使用 Key Vault 来保存带有队列触发器的函数的连接字符串时,我遇到了存储帐户连接字符串的问题。该函数似乎找到了我提供的参数,但要么没有取回 secret ,要么在抛出错误未找到有效的帐户信息组合时不喜欢该信息。

我的函数定义为:

        [FunctionName("ReadQueueForMessage")]
public static async Task Run([QueueTrigger("%AzureQueueTrigger%", Connection = "AzureWebJobsStorage")] string myQueueItem,
Binder binderinputblob,
ILogger log)

如果我只是在 local.settings.json 中定义连接字符串,则效果很好。我想要做的不仅仅是将连接字符串放入 json 文件中,我想使用以下语法将该函数指向 Key Vault:

"AzureWebJobsStorage": "@Microsoft.KeyVault(SecretUri=https://myappkeyvault.vault.azure.net/secrets/myapp-AzureWebJobsStorage-Queue/the-guid-of-secret)",

我确实转到了 Key Vault 并更新了访问策略以包含函数应用程序,以便它可以读取/列出 secret 。文档 here显示将配置部署到 Azure 后对其进行更新。我尝试先在 Visual Studio 中进行测试。也许这就是问题所在?或者根本不可能以这种方式使用 secret ?

最佳答案

I'm trying to test first in Visual Studio.

经 Azure Functions 团队确认,目前在 Azure Functions 中使用 Azure Key Vault 引用不支持在本地工作。如果您仍然想在本地进行测试,您可以实现一个不完整的本地解决方法,如下所示 issue .

我在门户网站上测试过,效果很好。您可以引用以下步骤:

1.在VS Function.cs中,然后发布到azure:

 public static void Run([QueueTrigger("queue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
string connectionString = System.Environment.GetEnvironmentVariable("AzureWebJobsStorage");
log.Info($"The connection string is {connectionString}");
}

2.在门户上的Appsettings 设置 上设置AzureWebJobsStorage

enter image description here

3.然后就可以正常工作了。

enter image description here

关于azure - Azure Key Vault 是否可以与函数一起使用来存储队列触发器的连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956664/

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