2

我想在本地开发我的 Azure Function App,然后将其发布到 Azure 门户。我正在使用 Azure Functions Core Tools 命令行,我的所有函数都在 Node.js 中。目前,我设法在本地下载我的函数并使用命令获取它们的设置:

func azure functionapp fetch-app-settings

所以在那之后我的 local.settings.json 有正确的设置值。当我进行任何更改时,我也能够成功地将它们发布到 Azure 门户。

现在的问题是我的应用程序中有两个函数,一个是 Http 触发,第二个是 EventHub 触发。当我尝试在本地运行主机时:

func host start

我从控制台得到以下输出:

[10.12.2017 13:03:47] Found the following functions:
[10.12.2017 13:03:47] Host.Functions.HttpTriggerJS1
[10.12.2017 13:03:47]
[10.12.2017 13:03:47] Job host started
[10.12.2017 13:03:47] The following 1 functions are in error:
[10.12.2017 13:03:47] EventHubTriggerJS1: The binding type 'eventHubTrigger' is not registered. Please ensure the type is correct and the binding extension is installed.

当我尝试使用 curl 在本地运行这个 EventHubTriggerJS1 函数时:

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/EventHubTriggerJS1

然后什么也没有发生,所以我想这是这个触发器注册的问题。HttpTriggerJS1 运行完美,我可以在下面访问它

http://localhost:7071/api/HttpTriggerJS1

那么,您知道配置中可能出现的问题吗?顺便说一句,是否可以在本地运行并连接到门户中的远程 EventHub?

4

1 回答 1

0

我无法在 1.0 版运行时重现您的错误。

我在 2.0 中重现了该错误。我相信 2.0 还不支持事件中心, https://github.com/Azure/azure-webjobs-sdk-script/wiki/Azure-Functions-runtime-2.0-known-issues#functional-gaps

尝试安装扩展 func extensions install --package Microsoft.Azure.WebJobs.Extensions.EventHubs -v 3.0.0-beta4

您能否提供有关您的功能的更多详细信息,以及您创建它们所采取的步骤?

HttpTriggerJS1 在本地创建,然后按照https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local中概述的步骤发布到门户网站?

EventHubTriggerJS1 是在门户中创建的?在同一个功能应用程序中?

不要在同一个函数应用中混合本地开发和门户开发。从本地项目创建和发布函数时,不应尝试在门户中维护或修改项目代码。

于 2017-12-12T23:20:08.043 回答