2017-02-15 10 views
0

私はイベントハブからのメッセージを処理しAzureテーブルにメッセージを書き込むAzure関数を書いています。Azure関数のエラー処理ですか?

Azure関数でエラー処理がどのように機能しますか? Azureテーブルに正しく書き込まれていない場合にメッセージがイベントハブから永久に削除されないように、メッセージの処理に失敗を通知するにはどうすればよいですか?

+0

古典的な例外をスローしようとしましたか? –

+0

Azure Tableの挿入に失敗した場合は、作業をハブに戻してもかまいませんか? –

+0

しかし、デフォルト動作は何ですか?私のコードで例外がスローされた場合はどうなりますか?イベントハブメッセージは自動的に自動的に再処理されるのでしょうか? – OlavT

答えて

0

イベントハブメッセージが消えてしまいます。msdn上にその上に良い情報を。

EventHubsは、高容量スループットのために意図されます。ここに意味のある の影響があります。これは、 バッチのイベントを処理し、バッチを一括して処理することによって発生します。したがって、個々のイベントと毒キューを再試行することには役立ちません。

いくつかのオプション:

  1. あなたは、低音量であれば、代わりにAzureのキューを使用しています。

  2. ハンドラは、ユーザコードのエラーを捕捉し、独自のエラー処理ポリシー(リトライや独自のポイズンキューへの送信など)を行うことができます。

あなたはAzure Functions Bindings docsを見れば、ストレージQueueTriggersとBlobTriggersは毒キューにメッセージをルーティング、およびサービスバスキュー/トピック/サブスクリプションは、Service Busのレベルで毒のメッセージを処理します。

0

ちょっとした提案 - EventHub + Azure Queueのようなものを組み合わせて使うのはどうですか?意味のあるイベントハブを使用してトラフィックの多いデータを漏洩させ、Azure機能を起動させます。間違ったことがあれば、ペイロードをAzure QueueにプッシュしてAzure Queueでフォールバック処理を行い、 Mattが上で提案したように、大量のキューやデータパイプラインのように言えば、キュ​​ーデータの性質上、データの保持や設計上の制限があります。

関連する問題