【问题标题】:Azure function fails with StorageExceptionAzure 函数因 StorageException 而失败
【发布时间】:2017-08-17 09:56:59
【问题描述】:

我正在使用 Azure 函数,希望更深入地了解如何获取更详细的错误消息。

函数从 queue 获取输入,这意味着将有多个函数实例并行运行。该函数进行了一些处理并希望通过使用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

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

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

【问题讨论】:

  • 通常表存储提供了足够的调试信息,您只需要查看异常中的其他字段,您不需要“启用”任何额外的日志记录。据我记得,异常中有 Response 属性包含更多信息。
  • 没错,异常会有细节。但是如果使用了表存储绑定就不同了。函数代码不是直接插入到表存储中,它只是准备数据,Azure函数运行时会尝试插入并失败。

标签: azure azure-functions azure-table-storage


【解决方案1】:

能否请您启用 Application Insights?这将为您提供有关这些故障的更详细信息。

您可以找到有关如何为您的 Function App here 启用 Application Insights 的信息。

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

我也在创建这个问题来跟踪改进:https://github.com/Azure/azure-webjobs-sdk/issues/1300

【讨论】:

  • 感谢您的建议 - 我将启用 App Insights 并再次检查
  • Application Insights 似乎显示的信息与日志中显示的信息相同,至少对于应用程序错误而言。感谢您在 github 上提出问题,获取更多详细信息将非常有用。顺便提一句。我已经意识到问题出在哪里,但是如果日志提供更多详细信息,可以更快地找到它。就我而言,问题是表中列的数据大小超过了允许的 64 KB。
  • 是的。打开问题以确保简单的事情清楚。如果您一开始就有该消息,那么这将是一个快速修复:)。很高兴听到您找到了根本原因。不过很好奇,你在哪里找到这些信息的?存储日志?
  • 我没有在任何地方找到错误信息。只是我注意到 Azure 函数的一些执行(具有更短的 TS 插入)运行良好,因此我调查并阅读了有关表存储限制的更多信息。我知道每条记录 1MB,但后来发现列的限制。所以我尝试截断所有内容都得到了很好的处理。这里也讨论了同样的错误 - stackoverflow.com/questions/4194702/…
猜你喜欢
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 2019-05-05
  • 2021-03-28
相关资源
最近更新 更多