如果云功能超时,我希望在日志中将其作为错误,以便我可以跟踪功能的运行状况,并在必要时采取措施提高速度。
是否可以使该日志显示为错误?
还有,有没有办法赶上这种超时?我有一个函数,如果引发异常,则将某些内容保存到实时数据库中。是否也可以捕获此错误?
Firebase响应:
感谢您与我们联系,并向我们提供反馈。我是 Firebase支持的Kyle,我很乐意处理此案 关于Firebase的云功能。
我了解到Cloud Function超时应视为 “错误”日志,而不是“信息”日志。我也同意 响应超时事件的触发器,例如functions.onTimeout() 包含在将来的Cloud版本中将非常酷 功能。
为此,请注意,我已经汇总了您的反馈意见(和用例) 关于将函数超时视为错误日志而非信息 日志。我还为您提交了内部功能请求票 建议使用functions.onTimeout()触发器。这将成为;这将是 处理后将在团队内部进行讨论,但我不能 提供有关何时要求的任何预计到达时间或具体时间表 功能将被实施。同时,您可能会留意 我们的发行说明和Firebase博客,介绍即将推出的功能和错误 修复了Firebase向我们尊贵的开发人员提供的功能。
答案 0 :(得分:1)
我想出了一种解决方法。
我使用Google Cloud Functions工具来监视Firebase Cloud Functions的超时。
只要我的任何函数记录了"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下,我找到了用户定义的指标并为其创建了自定义警报。
答案 1 :(得分:0)
函数超时后,您将在日志中看到一行。您是否建议您看不到?
您无法捕获超时。这是对Cloud Functions的严格限制,可防止您的代码在其控制范围之外运行。