Azure函数无法绑定队列来键入CloudQueue
问题描述:
我从QueueTrigger函数中获取该错误,该函数也需要CloudQueue绑定。Azure函数无法绑定队列来键入CloudQueue
Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException:错误索引方法 'QueueInstancesToImport.Run' ---> System.InvalidOperationException:无法绑定队列为类型“Microsoft.WindowsAzure.Storage.Queue.CloudQueue '。
根据文档CloudQueue应该是有效的。我发现
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue
其他可能的解决方案不完全匹配或不帮助。
- C# Azure Functions: Can't use CloudQueue type as output binding
- Azure Function App: Can't bind Queue to type 'Microsoft.WindowsAzure.Storage.Queue.CloudQueue' (IBinder)
我的代码
public static class QueueFormInstancesToImport
{
[FunctionName("QueueFormInstancesToImport")]
public static async Task Run(
[QueueTrigger("import-queue")]string message,
[Queue("import-queue")]CloudQueue queue,
TraceWriter traceWriter,
ExecutionContext context)
{
// Body of function
...
}
}
答
这很可能是一个NuGet包冲突。您的'CloudQueue'参数来自的汇编版本是与底层函数运行时使用的不同版本的stroage库。 CloudQueue定义上的F12可以查看它所绑定的完整程序集版本。
您很可能会添加对Azure存储SDK的额外引用。删除额外的引用并仅使用Azure函数模板中的引用。
与您的问题没有直接关系,但是您是否确实希望触发器和输出针对相同的队列?这将创建一个无限循环的函数调用 –
你的代码应该工作得很好。我闻到一些NuGet冲突。请检查您明确引用的唯一包是“Microsoft.NET.Sdk.Functions”。 – Mikhail