使用 .Net.Sdk.Functions 3.0.13 的 Azure 队列触发器错误:错误索引方法 'Function1',存储:未找到帐户信息的有效组合
Azure queue trigger error using .Net.Sdk.Functions 3.0.13: Error indexing method 'Function1',Storage: No valid combination of account info found
即使阅读了很多关于此错误的帖子,我也无法获得 运行 的新服务总线队列触发器。我还没有向解决方案添加任何逻辑,只是试图将生成的 shell 正确地转换为 运行。它是在 Core 3.1 中构建的,使用 VS2019 中的 QueueTrigger 模板。
此触发器与另一个 Azure Functions 在解决方案中,但它不是队列触发器(它是 Kafka 主题触发器)。我将队列触发器设置为启动项目。
尽管进行了许多更改尝试来解决此问题,但我仍然遇到这些错误:
Microsoft.Azure.WebJobs.Host:
Error indexing method 'Function1'.
Microsoft.WindowsAzure.Storage: No valid combination of account information found.
我首先尝试使用开发存储 ("AzureWebJobsStorage": "UseDevelopmentStorage=true",) 然后创建了一个实际的存储帐户。都没有用。当我尝试 运行 触发器时,我看到存储模拟器启动了。
我阅读了这个问题,但不清楚我需要做什么,如果有的话,与 blob 存储相关:
已安装的软件包:
Microsoft.NET.Sdk.Functions (3.0.13)
Azure.Messaging.ServiceBus (7.2.1)
Microsoft.Azure.WebJobs.Exetensions.Storage (3.0.10)
Microsoft.Azure.WebJobs.Extensions.ServiceBus (4.3.0)
这是触发器的签名:
public static class Function1
{
[FunctionName("Function1")]
public static void Run([QueueTrigger("queueNameHere", Connection = "AzureWebJobsServiceBus")]string myQueueItem, ILogger log) {
这是我的 local.settings.json 文件。请注意,我删除了“EndpointSuffix=core.windows.net/;”后缀,因为很多帖子都说这是一个修复。我的两个键值都以“=”结尾,对吗?
{
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
"AzureWebJobsServiceBus": "Endpoint=sb://MySvcBusNamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXX"
},
"IsEncrypted": false
}
host.json 文件:
{
"version": "2.0"
}
我在 host.json 中尝试过这个,但已将其删除:
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
},
"batchOptions": {
"maxMessageCount": 1000,
"operationTimeout": "00:01:00",
"autoComplete": true
}
}
}
问题是您正在使用存储队列触发器绑定public static void Run([QueueTrigger("queueNameHere"
您需要改用 ServiceBusTrigger,请参见下面的示例
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus-trigger?tabs=csharp#example
也可能是
的副本
即使阅读了很多关于此错误的帖子,我也无法获得 运行 的新服务总线队列触发器。我还没有向解决方案添加任何逻辑,只是试图将生成的 shell 正确地转换为 运行。它是在 Core 3.1 中构建的,使用 VS2019 中的 QueueTrigger 模板。 此触发器与另一个 Azure Functions 在解决方案中,但它不是队列触发器(它是 Kafka 主题触发器)。我将队列触发器设置为启动项目。
尽管进行了许多更改尝试来解决此问题,但我仍然遇到这些错误:
Microsoft.Azure.WebJobs.Host:
Error indexing method 'Function1'.
Microsoft.WindowsAzure.Storage: No valid combination of account information found.
我首先尝试使用开发存储 ("AzureWebJobsStorage": "UseDevelopmentStorage=true",) 然后创建了一个实际的存储帐户。都没有用。当我尝试 运行 触发器时,我看到存储模拟器启动了。
我阅读了这个问题,但不清楚我需要做什么,如果有的话,与 blob 存储相关:
已安装的软件包:
Microsoft.NET.Sdk.Functions (3.0.13)
Azure.Messaging.ServiceBus (7.2.1)
Microsoft.Azure.WebJobs.Exetensions.Storage (3.0.10)
Microsoft.Azure.WebJobs.Extensions.ServiceBus (4.3.0)
这是触发器的签名:
public static class Function1
{
[FunctionName("Function1")]
public static void Run([QueueTrigger("queueNameHere", Connection = "AzureWebJobsServiceBus")]string myQueueItem, ILogger log) {
这是我的 local.settings.json 文件。请注意,我删除了“EndpointSuffix=core.windows.net/;”后缀,因为很多帖子都说这是一个修复。我的两个键值都以“=”结尾,对吗?
{
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
"AzureWebJobsServiceBus": "Endpoint=sb://MySvcBusNamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXX"
},
"IsEncrypted": false
}
host.json 文件:
{
"version": "2.0"
}
我在 host.json 中尝试过这个,但已将其删除:
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
},
"batchOptions": {
"maxMessageCount": 1000,
"operationTimeout": "00:01:00",
"autoComplete": true
}
}
}
问题是您正在使用存储队列触发器绑定public static void Run([QueueTrigger("queueNameHere"
您需要改用 ServiceBusTrigger,请参见下面的示例
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus-trigger?tabs=csharp#example
也可能是