【发布时间】:2020-09-11 04:51:33
【问题描述】:
我用 Python 尝试了 Google Cloud Functions,但运行它时出现问题。它说:Error: could not handle the request
我检查了日志,但没有错误,只是一条日志消息:
Function execution took 16 ms, finished with status: 'crash'
当我将功能简化为打印输出时,它可以正常工作。然后我在打印输出之前添加了raise Exception('test'),以查看异常是否会出现在 Stackdriver Errors 中,但没有,我只在日志中再次收到了 finished with status: 'crash' 消息。
这是正常行为吗?或者它是一个错误,而不是崩溃,我应该在日志中将异常视为错误?
【问题讨论】:
-
我的经验是,我们看到了一个“崩溃”记录,没有进一步的细节。我的信念是,您在 Python 中提供了一个函数,如果该函数抛出异常,它会在堆栈的更高位置被捕获并记录为崩溃。如果您想查看异常,请在函数中放置一个 try / except 将您的代码括起来。然后,如果抛出异常,您将捕获它并自己记录(如果您选择),然后重新抛出异常。
-
捕获所有内容是一种解决方法,谢谢,尽管根据文档它不应该是必需的,所以它一定是一个错误:“您的函数产生的未捕获异常将出现在 Stackdriver 错误报告中。” cloud.google.com/functions/docs/monitoring/error-reporting
-
您提出了一个很好的问题。我尝试使用 JavaScript 和 Python。使用 JavaScript,我们在日志中获得跟踪并创建错误报告。使用 Python,我们得到的只是“崩溃完成”,日志中没有详细信息,也没有错误报告……任务仍在继续。
-
@Tom 你解决了这个问题吗?
标签: python google-cloud-functions