Azure本地开发功能 - 无法注册EventHub触发功能

时间:2017-12-10 13:16:11

标签: azure azure-functions azure-functions-runtime

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

[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.

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

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

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

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

http://localhost:7071/api/HttpTriggerJS1

当我尝试使用curl:

在本地运行此EventHubTriggerJS1函数时
{% load staticfiles %}
<!DOCTYPE html>
<html>
    <head>
        <title style="font-weight:bold; font-family:cursive">Font Maker </title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link href='//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
        <link href='ank1.css' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="{% static 'css/blog.css' %}">
    </head>
    <div class="embed-responsive embed-responsive-4by3">
    <body>
          <div class="page-header">

            <h1><a href="/"style="font-weight:bold; font-family:cursive">FoNt MaKeR</a></h1>
        </div>
        <video autoplay loop muted="background">


        <source src="//player.vimeo.com/external/158148793.hd.mp4?s=8e8741dbee251d5c35a759718d4b0976fbf38b6f&profile_id=119&oauth2_token_id=57447761"type="video/mp4"></source>


    </video> 


        <div class="content container">
            <div class="row">
                <div class="col-md-8">
                    {% block content %}
                    {% endblock %}
                </div>
            </div>
        </div>


</div>
    </body>
    </div>
</html>

然后没有任何反应,所以我猜这是触发器注册的问题。 HttpTriggerJS1运行完美,我可以在

下访问它
FROM keymetrics/pm2:8

那么,您是否知道配置中可能存在哪些问题? BTW是否可以在本地运行并连接到门户中的远程EventHub?

1 个答案:

答案 0 :(得分:0)

我无法在Version 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?在相同的功能应用程序?

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