【发布时间】:2022-01-11 22:36:46
【问题描述】:
我正在尝试将托管标识与 Azure Functions V3 和 QueueTrigger 一起使用。 功能代码定义如下:
[Function("ProcessUserData")]
public async Task ProcessUserData([QueueTrigger("%QueueSettings:UserDataQueue%", Connection = "QueueSettings:StorageAccount")] string queueItem, FunctionContext context)
{
var logger = context.GetLogger<QueueListener>();
...
}
根据微软文档,这应该可以通过定义一些额外的配置属性来实现
__凭据 __queueServiceUri
我的 local.settings.json 看起来像这样:
// "QueueSettings:StorageAccount": "",
"QueueSettings:StorageAccount__queueServiceUri": "https://mytestfa.queue.core.windows.net/",
"QueueSettings:StorageAccount__credential": "managedidentity",
尝试在本地运行项目时出现以下错误:
[2021-12-06T18:07:53.181Z]“ProcessUserData”函数出错:Microsoft.Azure.WebJobs.Host:错误索引方法“Functions.ProcessUserData”。 Microsoft.Azure.WebJobs.Extensions.Storage:存储帐户连接字符串“AzureWebJobsQueueSettings:StorageAccount”不存在。确保它是已定义的应用设置。
当我使用并清空连接字符串时,我得到另一个错误:
"QueueSettings:StorageAccount": "",
"QueueSettings:StorageAccount__queueServiceUri": "https://mytestfa.queue.core.windows.net/",
"QueueSettings:StorageAccount__credential": "managedidentity",
错误:
[2021-12-06T18:25:20.262Z]“ProcessUserData”函数出错:Microsoft.Azure.WebJobs.Host:错误索引方法“Functions.ProcessUserData”。 Microsoft.Azure.WebJobs.Extensions.Storage:“AzureWebJobsQueueSettings:StorageAccount”的存储帐户连接字符串无效。
当使用完整的连接字符串和帐户密钥时,这可以正常工作,但我们必须使用托管身份。 我已升级到最新版本的 Azure Functions Core Tole (3.0.3904),并且正在使用 Visual Studio 2022。
此应该起作用的其他文档: https://devblogs.microsoft.com/azure-sdk/introducing-the-new-azure-function-extension-libraries-beta/
感谢您提供任何见解。
【问题讨论】:
-
你可以在 GitHub 上打开一个问题:azure-functions-core-tools
-
@DeepDave-MT 是的,如下所述,您需要“Microsoft.Azure.Functions.Worker.Extensions.Storage”包的最新测试版,然后错误就会消失。
标签: c# azure azure-functions