2017-08-16 49 views
1

我正在玩Azure函数,并想了解如何获取更详细的错误消息。Azure函数失败,出现StorageException

函数从队列获取输入,这意味着将有多个并行运行的函数实例。该功能做了一些处理,并通过使用ICollector<>

功能相当频繁要输出到表存储失败例外

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. 

我可以从日志此异常,但我想获得更多一些细节如上所述“Unexpected Response Code for Operation: 0” when executing Azure Table Storage batch delete

问题是我无法捕捉代码中的异常,因为绑定是在azure函数运行时完成的。

有没有办法如何启用一些更详细的日志记录?

+0

通常表存储提供调试足够的信息,你只需要看看异常的附加字段,则不需要“启用”任何额外的日志。据我所知,异常中有Response属性,其中包含更多信息。 – cassandrad

+0

确实如此,例外情况会有细节。但如果使用表存储绑定,则情况会有所不同。函数代码不直接插入到表存储中,它只是准备数据,而Azure函数运行时将尝试插入并失败。 – mybrave

回答

3

您能否启用Application Insights?这会给你更多有关这些故障的详细信息。

有关如何为功能应用程序启用应用程序见解的信息,请参阅here

另外,查看您的存储帐户日志可能会提供有关可能导致故障的有用信息。

我也在创造这个问题跟踪的增强:https://github.com/Azure/azure-webjobs-sdk/issues/1300

+0

感谢您的建议 - 我将启用应用程序见解并再次检查 – mybrave

+0

Application Insights似乎显示与日志中显示的信息相同的信息,至少出现应用程序错误。感谢您提出github上的问题,获取更多详细信息将非常有用。顺便说一句。我已经意识到这个问题是什么,但如果日志提供了更多的细节,可以更快地发现它。在我的情况下问题是数据的大小超过表中允许的64 KB列。 – mybrave

+1

是的。打开这个问题,以确保简单的事情是清楚的。如果你有这个信息开始,这将是一个快速修复:)。很高兴听到您找到根本原因。奇怪的是,你在哪里找到这些信息?存储日志? –

相关问题