2

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

4

2 回答 2

3

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

除了上述选项之外,您仍然可以使用 Http POST 请求在本地测试非 Http 触发函数。换句话说,您的函数可以像在门户中一样在本地进行测试。更多细节在这里

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

网址:http://localhost:7071/admin/functions/MyFunction

有效载荷:

{
  "input": '{"Id":1234,"Name":"abcd"}'
}
于 2017-10-30T16:51:39.450 回答
2

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

我的猜测是,您的云部署总是处理事件,将检查点更新到最新位置,然后本地部署获取此检查点并且不执行任何操作。

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

于 2017-10-30T12:40:25.563 回答