google-cloud-platform - Cloud Functions 概览图表显示持续不断的错误流,而错误选项卡和日志不显示任何错误
问题描述
我相信截图是不言自明的。是否有其他地方可以查找这些错误,或者实际上可能没有错误?
编辑 2021-10-08
- 这是一个 Python 3.7 函数
- 除非函数本身崩溃,否则函数始终返回 200 或 204 状态(对于选项)
- 日志显示过去 7 天内严重程度为“警告”或更高的一个日志。
这是功能:
def main(request):
if request.method == 'OPTIONS':
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '3600'
}
return ('', 204, headers)
headers = {
'Access-Control-Allow-Origin': '*'
}
if request.method == 'GET':
data = {
"ua": request.headers.get('User-Agent'),
"ip": "n/a",
"q": request.query_string.decode("utf-8")
}
if request.method == 'POST':
data = {
"ua": request.headers.get('User-Agent'),
"ip": "n/a",
"q": request.data.decode("utf-8")
}
if request.headers.get('x-forwarded-for') and len(request.headers.get('x-forwarded-for')) > 1:
data['ip'] = request.access_route[0]
print(data)
return ('ok', 200, headers)
解决方案
正如@JosephLust 提到的,检查LOGS
选项卡中的错误和状态。
您还可以使用Cloud Functions 的错误报告来查看GCP Console中的错误。
回到@Kolban 的评论,在这种情况下您收到的“错误”可能是从您的云函数主体返回的“逻辑”错误。云函数是客户端进行的 REST 调用。返回码200
表示“OK”,而返回码“not”200
可能被视为错误。这可能是调用中显示为错误/非错误的内容。左下角的“错误”可能被视为“崩溃”或 Cloud Functions 的其他内部故障,与您的逻辑决定返回的内容不同。
正如@samthecodingman 指出的那样,虽然屏幕截图可能会显示您观察到的内容,但这还不足以找出问题所在。函数的类型、使用方式、调用位置、使用的语言、调用函数的客户端看到的内容等有助于澄清这一点。它可以像 HTTP 请求函数的调用是否返回一样简单HTTP 200 OK
。
在这种情况下,该问题已通过公共问题跟踪器报告,目前正在由 Google 进行审核。
推荐阅读
- python - Python 中的幂集
- c# - MvvmLight:如何取消订阅“RaisePropertychanged”事件
- javascript - 自动更新表单中的输入字段,vue.js
- matlab - matlab中的多级多项逻辑回归
- javascript - 模块内的Vuex调度动作
- winforms - 获取父母姓名
- plantuml - 在 PlantUML 中,如何在两个类之间的关联的任一端指定角色名称?
- listview - 尝试在 ListView 中使用其内容时未找到 Flutter FutureProvider
- python - 为什么约束不能生成所有可能的组合?
- flutter - 如何根据主题更改 TextFormField 的文本颜色