【问题标题】:How to debug EventHubTrigger locally?如何在本地调试 EventHubTrigger?
【发布时间】:2018-09-03 08:15:46
【问题描述】:

我正在尝试在本地调试 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"
    }
}

如何调试我的代码?

谢谢!

【问题讨论】:

  • 创建一个测试事件中心并在那里发送一些示例事件?
  • 如何创建测试 EventHub?我正在使用 Azure 存储资源管理器,我只看到队列、表和 Blob :(
  • 事件中心不是存储的一部分。只需通过门户制作一个新的。 “测试”更多的是关于预期用途,否则它只是一个普通的事件中心,
  • 我无法在 Azure 门户中创建它,因为我还没有访问最终事件中心的权限,而且我自己也没有任何订阅 :(
  • 你可以参考这个article关于Test Azure Function with Event Hub Trigger Locally。

标签: azure azure-functions azure-eventhub


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-10-16
    • 1970-01-01
    • 2018-08-21
    • 2010-11-10
    • 2019-06-27
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多