gpt4 book ai didi

azure - 如何在没有 setx AZURE_STORAGE_CONNECTION_STRING 的情况下为 azure 函数提供存储连接字符串

转载 作者:行者123 更新时间:2023-12-03 06:08:13 27 4
gpt4 key购买 nike

在我发现的示例中,您需要将 AZURE_STORAGE_CONNECTION_STRING 设置为真实的环境变量。但是Azure功能没有这个,只有配置。我在 local.settings.json 文件中设置了它,但是当我运行它时出现问题并且该函数无法加载。

如何让连接字符串发挥作用?

[2023-09-12T11:14:30.192Z] Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ContractQueue'. System.Private.CoreLib: Exception has been thrown by the target of an invocation. Azure.Storage.Queues: No valid combination of account information found.
[2023-09-12T11:14:30.214Z] Error indexing method 'Functions.ContractQueue'
[2023-09-12T11:14:30.218Z] Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ContractQueue'. System.Private.CoreLib: Exception has been thrown by the target of an invocation. Azure.Storage.Queues: No valid combination of account information found.
[2023-09-12T11:14:30.222Z] Function 'Functions.ContractQueue' failed indexing and will be disabled.
[2023-09-12T11:14:30.294Z] The 'ContractQueue' function is in error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ContractQueue'. System.Private.CoreLib: Exception has been thrown by the target of an invocation. Azure.Storage.Queues: No valid combination of account information found.

最佳答案

除了我的评论之外,在创建 azure 队列触发函数时,由于以下项目,您将在函数模板中获得以下选项

enter image description here

如果勾选了配置依赖项,那么下一步将提示您选择以下选项

enter image description here

对于前两个选项,您需要在本地设置文件和 function.cs 文件中提供如下连接字符串,这将使用本地存储队列模拟器。

本地设置

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
}
}

function.cs

[Function(nameof(Function1))]
public void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] QueueMessage message)
{
_logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
}

但如果您选择Azure存储选项,那么它将显示您订阅中的所有存储帐户。选择一个存储帐户并提供如下连接字符串名称

enter image description here

Function.cs 文件如下所示

[Function(nameof(Function1))]
public void Run([QueueTrigger("input-queue", Connection = "AZURE_STORAGE_CONNECTION_STRING")] QueueMessage message)
{
_logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
}

无需在本地设置文件中添加 AZURE_STORAGE_CONNECTION_STRING,因为它已存储在 Secrets.json 文件中。

enter image description here

输出:

enter image description here

请注意:您需要使用最新的Microsoft.Azure.Functions.Worker.Extensions.Storage.QueuesAzure.Storage.Queues<包

关于azure - 如何在没有 setx AZURE_STORAGE_CONNECTION_STRING 的情况下为 azure 函数提供存储连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77088678/

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