【问题标题】:C# Service Bus Queue trigger never gets triggeredC# 服务总线队列触发器永远不会被触发
【发布时间】:2020-05-21 11:32:22
【问题描述】:

我创建了一个非常简单的 .net core 3.1 函数项目,其中包含一个应该基于服务总线队列触发的函数。

代码如下:

[FunctionName("PublishImage")]
public static async Task Run(
    [QueueTrigger("publishimage")]string message,
    ILogger log)
{
    log.LogInformation($"Started to publish image: {message}");
}

当我在本地启动该函数时,我看到他找到了该函数并且我没有得到任何异常。

然后当我向队列发送消息时。它不会被触发。在 Azure 中,我看到队列中现在有 4 条消息,并且我所做的任何事情都不会被触发,在本地看不到异常,如果我尝试在 Azure 中启用应用程序洞察力的情况下运行它,我看不到任何异常或任何信息。同样打开登录也不会提供任何信息。

我的 host.json 现在看起来像这样:

{
    "version": "2.0",
    "functionTimeout": "04:00:00",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout": "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8
        }
    }
}
  • Microsoft.NET.Sdk.Functions 3.0.7 已安装。
  • Azure 中的运行时间约为 3
  • 应用设置 AzureWebJobsServiceBus 已设置并验证

【问题讨论】:

    标签: c# azure azure-functions azureservicebus azure-servicebus-queues


    【解决方案1】:

    是的,您混淆了 Azure 服务总线和 Azure 存储队列。 QueueTrigger 用于存储队列,ServiceBusTrigger 用于服务总线。

    【讨论】:

      【解决方案2】:

      我找到了解决方案。我正在使用服务总线队列。因此,我不应该使用 QueueTrigger,而是使用 ServiceBusTrigger。将代码更改为以下解决了问题:

      [FunctionName("PublishImage")]
      public static async Task Run(
          [ServiceBusTrigger("publishimage")]string message,
          ILogger log)
      {
          log.LogInformation($"Started to publish image: {message}");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 2016-06-12
        • 2019-08-28
        相关资源
        最近更新 更多