web-dev-qa-db-ja.com

失敗時のAzureFunctions通知

タイマーでトリガーされるAzure関数を本番環境で実行していますが、関数が失敗した場合に通知を受け取りたいと思います。

私の場合、接続されているさまざまなサービスにアクセスするとクラッシュが発生する可能性があり、トラブルシューティングが必要です。クラッシュは、通知が必要なタイプのエラーです。

関数が失敗すると、ログエントリに失敗が示されるので、システムに通知を生成させるフックがシステムにあるのではないかと思います。

たとえば、blobとキューのバインディングがポイズンキューエントリの作成をサポートしていることは知っていますが、タイマートリガーバインディングは、その性質のトリガー出力については何も言いません。

関数は$ returnステータスを他の関数への入力として渡すことができるようですが、その操作についてはドキュメントで詳しく説明されていません。また、その場合、エラーステータスを処理するための別の関数を作成する必要があり、組み込みのものを探していました。

これについて@AzureSupportに問い合わせましたが、その回答はAzure Functionsとは関係がなく、代わりにDLL通知フックを参照し、uservoiceでファイルすることをお勧めします。

ある種のエラーステータス通知を実装した人がここにいるに違いありません。私はコードを必要としないソリューションを好みます。

10
Leigh007

障害を監視して警告するための推奨される方法は、AzureFunctionsと完全に統合されたAppInsightsを使用することです。

https://blogs.msdn.Microsoft.com/appserviceteam/2017/04/06/Azure-functions-application-insights/

すべてのログはAppInsightsで利用できるため、障害を監視し、独自の基準に基づいてアラートを設定するのは簡単です。

ただし、アラートのみに関心があり、監視などには関心がない場合は、代わりにAzure Monitorを使用できます。 https://docs.Microsoft.com/en-us/Azure/monitoring-and-diagnostics/monitoring- get-started

5
Chris

関数が失敗すると、ログエントリに失敗が示されるので、システムに通知を生成させるフックがシステムにあるのではないかと思います。

.。

私はコードを必要としないソリューションを好みます。

これはゼロコードソリューションです。

以前、このトピックについて@AzureFunctionsを突いたのですが、提案された応答はApplicationInsightsを使用することでした。障害時のアラートを処理でき、Webhookを使用することもできます。

関数アプリをAppInsightsにリンクする方法については、 Azure Functions App-Insights のドキュメントを参照してください。次に、必要なアラートを設定します。

2
flyte

残念ながら、このフックは存在しません。

タイマートリガーからキュートリガーに切り替えることはできますか?

再試行を取得でき(必要な場合)、指定された回数の試行の後、メッセージはポイズンキューに送信されます。

実行をスケジュールするには、スケジュールに一致するように可視性タイムアウト付きのキューメッセージを追加できます。

1
Matt Mason

障害に関するアラートを受け取るには、次の2つのオプションがあります。

  1. タイマートリガーは、実行ログを(SFTP経由で)スキャンして失敗を検出します。
  2. 関数全体をtry/catchブロックでラップし、catchブロックに数行を書き込んで、エラーの詳細を記載したメールを送信します。

お役に立てれば。

0
Jonny Leigh

コードなし:

  1. Azureクラウドアカウントに移動します

  2. メニューから[モニター]を選択します

  3. 次に、[新しいルールの追加]を選択します

  4. 次に、条件とアクションを選択し、アラートの詳細を追加します。

0
MarwaAhmad