Azure 函数未在本地触发

Azure function is not triggered locally

我使用 VScode 在本地开发了我的 Azure 函数应用程序并将其推送到 azure 云,我有 eventhub-trigger 函数,我以前通常通过 VScode 在本地调试我的代码,但现在当我 运行 func host start --debuge,我的应用程序中的功能已启动但没有任何触发,我可以通过他们的日志看到它们在云端被触发,这让我很生气,为什么它们没有在本地触发,它们被启用了,我多次重启我的函数应用程序,但我什么也没得到。 我的应用是 https://butterflyfnapp.azurewebsites.net

事件中心消费者信息(检查点)存储在 Blob 存储中。如果您在开发/生产环境之间共享到 Blob 存储的连接字符串,它们将使用相同的检查点,因此它们将相互竞争。

我的猜测是你的云部署总是处理事件,将检查点更新到最新位置,然后本地部署接受这个检查点并且不做任何事情。

为确保不会发生这种情况,请创建一个额外的 "dev" Blob 存储并将本地连接字符串设置设置为该存储。

除了 Mikhail 之外,其他选项是为云和 development/VS 等每个环境创建单独的事件中心使用者组,并在应用程序设置或 local.settings.json 中配置它们。 然后将 ConsumerGroup = "%consumergroup%" 添加到函数中的 EventHubTrigger 参数,其中 consumergroup 是变量名称的示例设置。

除上述选项外,您还可以使用 Http POST 请求在本地测试非 Http 触发器功能。换句话说,您的功能可以像在门户中一样在本地进行测试。更多详情 here.

以下是使用 Http POST 请求测试 EventHubTrigger 函数的示例:

url: http://localhost:7071/admin/functions/MyFunction

有效负载:

{
  "input": '{"Id":1234,"Name":"abcd"}'
}