Azure Function App をローカルで開発し、後で Azure Portal に公開したいと考えています。私は Azure Functions Core Tools コマンド ラインを使用しており、すべての関数は Node.js にあります。現在、関数をローカルにダウンロードし、コマンドで設定をフェッチすることができました。
func azure functionapp fetch-app-settings
その後、私の local.settings.json には正しい設定値があります。変更を加えると、それらを Azure Portal に正常に発行することもできます。
問題は、アプリに 2 つの関数があることです。1 つは Http Triggered で、もう 1 つは 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 に接続することは可能ですか?