代码之家  ›  专栏  ›  技术社区  ›  SuperJMN

如何在本地调试EventHubTrigger?

  •  1
  • SuperJMN  · 技术社区  · 6 年前

    我正在尝试在本地调试Azure函数。这是一个事件触发器。

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

    我的代码当前如下所示:

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

    但是当我试着调试它时,我得到了一个错误:

    Microsoft.Azure.WebJobs.Host:错误索引方法 接受者点名成就。

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

    我的local.settings.json如下:

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

    如何调试代码?

    谢谢您!

    1 回复  |  直到 6 年前
        1
  •  3
  •   SLdragon    6 年前

    你需要在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)