1

Azure関数をローカルでVScodeを使用して開発し、Azureクラウドにプッシュしました。イベントハブ・トリガー関数があります.VScodeを通じてローカルでコードをデバッグするのが普通でしたが、今はfunc host start --debuge、私のアプリの機能は起動しましたが、何もトリガーされず、ログを通してクラウド上でトリガーされているのを見ることができます、なぜ私は怒っているのですか? 。 私のアプリはhttps://butterflyfnapp.azurewebsites.netAzure関数がローカルで起動されない

+0

ローカルで同じブロブストレージを使用していますし、アズールで?お互いに競争していますか? – Mikhail

+0

テーブルストレージを使用しています。同じコードがクラウドとローカルの両方にあります。コードをローカルで開発/追加する必要があります。クラウドにプッシュします。クラウドを削除する必要があると思いますか?コードを最初に実行するか、何をするかを指定します。 – Ayman

答えて

2

ミハイルに加えて、クラウドや開発/ 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"}' 
} 
2

イベントハブの消費者情報(チェックポイント)はBlobストレージに保存されています。開発環境/実稼働環境の間でBLOBストレージに接続文字列を共有すると、同じチェックポイントが使用されるため、互いに競合します。

私の推測では、クラウド展開は常にイベントを処理し、チェックポイントを最新の位置に更新してから、ローカルの展開がこのチェックポイントをとり、何もしないことです。

これが起こらないようにするには、追加の "dev" Blobストレージを作成し、そのストレージにローカル接続文字列設定を設定します。

関連する問題