已完成状态的云函数:'timeout' - 信息不是错误



如果云函数超时,我希望将其作为错误记录在日志中,这样我就可以跟踪函数的运行状况,并在必要时采取措施提高速度。

是否可以将该日志显示为错误?

还有,有没有办法捕捉这种超时?我有一个函数,如果抛出异常,它会将某些内容保存到实时数据库中。有可能也发现这个错误吗?

Firebase响应:

感谢您的联系,并为我们提供反馈。我是来自Firebase Support的Kyle和我很乐意处理这个案子关于Firebase的云功能。

我理解云功能超时应该被视为"errors"而不是"info"日志。我也同意触发器,用于响应函数.onTimeout((等超时事件能包含在未来版本的Cloud中会很酷功能。

为此,请注意,我已经级联了您的反馈(和用例(关于将函数超时视为错误日志,而不是信息日志我还为您的建议使用函数.onTimeout((触发器。这将是处理后在团队内部进行讨论,但我不能提供ETA或具体时间表功能将被实现。在此期间,你可以密切关注我们的发布说明和Firebase博客,了解即将推出的功能和bugFirebase为我们尊贵的开发人员提供的修复程序。

我想出了一个解决方法来实现这一点。

我使用谷歌云功能工具来监控Firebase云功能的超时。

每当"finished with status: 'timeout'"被我的任何功能记录时,我都会设置一个自定义警报:

我去了https://console.cloud.google.com/logs/viewer并创建了一个自定义的高级搜索:

resource.type="cloud_function"
"finished with status: 'timeout'"

然后,我使用"创建度量"功能来跟踪该日志的实例。

然后在https://console.cloud.google.com/logs/metrics,我找到了我的用户定义指标,并为其创建了自定义警报。

当函数超时时,您将在日志中看到一行。你是在暗示你没有看到它吗?

你无法捕捉超时。这是对云函数的严格限制,可以防止代码在其控制范围之外运行。

最新更新