Azure Functions V4 NET 6 服务总线触发器未触发

标签 azure azure-functions azureservicebus .net-6.0 azure-servicebus-queues

我刚刚将 Azure Functions 升级到 v4。我有一个服务总线队列触发器来处理队列的消息。
升级后,它不再被解雇,我不明白为什么以及如何调查。
代码没有从一个版本更改为另一个版本,我找不到关于此主题的任何重大更改。
该函数的日志没有显示任何错误或执行情况,并且消息卡在队列中,没有附加信息。

这是我的触发器:

public class IncomingQueueTrigger
{
    private string _body;
    private HttpResponseMessage response;
    private SignalErrorQueueItem _errorObj;
    private readonly short _maxTriesCount = 2;
    private readonly HttpClient _client;

    public IncomingQueueTrigger(IHttpClientFactory httpClientFactory)
    {
        _client = httpClientFactory.CreateClient();
    }

    [FunctionName("IncomingQueueTrigger")]
    public async Task Run([ServiceBusTrigger("%my_queue_name%", Connection = "my_connection_string")] ServiceBusReceivedMessage myQueueItem, string label, ServiceBusReceiver messageReceiver)
    {
        // my code
    }
}

最佳答案

在本地执行函数时出现此错误: Microsoft.Azure.WebJobs.Host: Error indexing method 'IncomingQueueTrigger'. Microsoft.Azure.WebJobs.Host: Can't bind parameter 'messageReceiver' to type 'Azure.Messaging.ServiceBus.ServiceBusReceiver'.
在谷歌上搜索我发现this其中我了解到,通过函数更新,我还必须更新消息接收器的类型:

ServiceBusReceiver => ServiceBusMessageActions

现在一切都恢复正常了。

感谢 HariKrishnaRajoli-MT 建议我尝试在本地运行这些函数。

关于Azure Functions V4 NET 6 服务总线触发器未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72459021/

相关文章:

python - Azure Functions Python 连接到 Azure SQL DB

Azure Functions 执行错误

.Net Core 中的 Azure 服务总线 - 如何仅接收一条消息

azure - 将 top 与 Azure 搜索建议结合使用

azure - logger.Log 语句在 Azure 门户中的什么位置?

azure - 是否有可能使用 IAsyncCollector 而不依赖 azure webjobs?

azure - 如何在没有旧的 Azure 门户的情况下获取现有服务总线的连接字符串

来自不同租户的 Azure AD 同意书

Azure 服务配置错误

用于 SQL 和 Windows 作业执行的 Azure 服务总线