如何在本地调试EventHubTrigger?

时间:2018-09-03 08:15:46

标签: azure azure-functions azure-eventhub

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

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

我的代码当前如下所示:

case PricingActionTypes.AddPricing: {
    return adapter.addOne(action.payload.pricing, state);
}

case PricingActionTypes.UpsertPricing: {
    return adapter.upsertOne(action.payload.pricing, state);
}

case PricingActionTypes.AddPricings: {
    return adapter.addMany(action.payload.pricings, state);
}

但是当我尝试调试它时,出现此错误:

  

Microsoft.Azure.WebJobs.Host:错误索引方法   'Notificator.Run'。 Microsoft.Azure.WebJobs.ServiceBus:无事件中心   收件人命名为成就。

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

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

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

如何调试代码?

谢谢!

1 个答案:

答案 0 :(得分:2)

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