2017-08-16 28 views
1

私はAzure関数で再生しています。より詳細なエラーメッセージを取得する方法についていくつかの洞察を得たいと思います。Azure関数はStorageExceptionで失敗します

関数は、キューから入力を取得します。つまり、並列に実行される関数のインスタンスが多数存在します。この関数は

Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.LoadActivityDetail 
    ---> System.InvalidOperationException : Error while handling parameter outputTable after function returned: 
    ---> Microsoft.WindowsAzure.Storage.StorageException : Element 0 in the batch returned an unexpected response code. 

私は、ログからこの例外を取得することができますが、私はいくつかのより多く取得したいと思い例外で失敗何らかの処理を行い、かなり頻繁にICollector<>

の機能を使用してテーブルストレージに出力したいです上記のような詳細“Unexpected Response Code for Operation: 0” when executing Azure Table Storage batch delete

問題は、コードで例外がキャッチされないことです。バインディングは、空白関数の実行時に行われるためです。

詳細なログ記録を有効にする方法はありますか?

+0

通常表の記憶域は、デバッグのための十分な情報を提供し、あなただけの例外で追加のフィールドを見る必要があり、あなたは「有効」にする必要はありません任意の追加ロギング。私が覚えている限り、より多くの情報を含む例外のResponseプロパティがあります。 – cassandrad

+0

それは本当ですが、例外は詳細を持っています。しかし、テーブルストレージバインディングが使用されている場合は異なります。ファンクションコードはテーブルストレージに直接挿入されていません。データを準備するだけで、Azure関数のランタイムは挿入して失敗します。 – mybrave

答えて

3

Application Insightsを有効にしてください。これにより、これらの失敗に関するより詳細な情報が得られます。

Function AppのApplication Insightsを有効にする方法については、hereを参照してください。

また、ストレージアカウントのログを確認すると、障害の原因となる可能性のある情報が表示される場合があります。

私も充実追跡するために、この問題を作成しています:https://github.com/Azure/azure-webjobs-sdk/issues/1300

+0

提案をいただきありがとうございます - 私はApp Insightsを有効にしてもう一度チェックします – mybrave

+0

Application Insightは、少なくともアプリケーションエラーについてはログに表示されているのと同じ情報を表示しているようです。 githubに関する問題を提起してくれてありがとうございます。詳細を知ることは本当に便利です。 Btw。私は問題が何であるかを認識していますが、ログに詳細が表示されれば、はるかに速く見つけることができます。私の場合の問題は、データのサイズがテーブルの列に対して64KBを超えていることでした。 – mybrave

+1

はい。簡単なことを明確にするために問題を開いた。あなたがそのメッセージを最初に持っていたなら、これはすばやく修正されたでしょう:)。あなたが根本的な原因を見つけたと聞いてうれしいです。好奇心だけど、その情報はどこで見つけましたか?ストレージログ? –

関連する問題