首页 > 解决方案 > 如何在本地调试 EventHubTrigger?

问题描述

我正在尝试在本地调试 Azure 函数。这是一个 EventHubTrigger。

问题是我需要在本地调试代码,因为我仍然没有“真实”设置。

我的代码目前如下所示:

public static class Notificator
{
    [FunctionName("Notificator")]
    public static async Task Run([EventHubTrigger("achievements")]UserAchivementNofication notification, ILogger log)
    {
    }
}

但是当我尝试调试它时,我收到了这个错误:

Microsoft.Azure.WebJobs.Host:索引方法“Notificator.Run”出错。Microsoft.Azure.WebJobs.ServiceBus:没有名为成就的事件中心接收器。

这很正常,因为它不存在。

我的 local.settings.json 是这样的:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
    }
}

如何调试我的代码?

谢谢!

标签: azureazure-functionsazure-eventhub

解决方案


您需要在 Azure 上创建一个 EventHub,以便您可以在本地测试 EventHug 触发器,

  1. 转到 local.settings.json 添加一些设置:
{
  "IsEncrypted": false,
  "Values": {
     "AzureWebJobsStorage": "UseDevelopmentStorage=true",
     "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
     "EventHubConnectionString": "YourEventHubConnectionString"
  }
}
  1. 你的功能应该是这样的:

    public static void Run([EventHubTrigger("EventHubName", Connection = "EventHubConnectionString")]EventData myEventHubMessage, TraceWriter log)
    

推荐阅读