首页 > 解决方案 > Cloud Functions 概览图表显示持续不断的错误流,而错误选项卡和日志不显示任何错误

问题描述

我相信截图是不言自明的。是否有其他地方可以查找这些错误,或者实际上可能没有错误?

在此处输入图像描述

编辑 2021-10-08

这是功能:

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)

标签: google-cloud-platformgoogle-cloud-functionsgoogle-cloud-logging

解决方案


正如@JosephLust 提到的,检查LOGS选项卡中的错误和状态。

您还可以使用Cloud Functions 的错误报告来查看GCP Console中的错误。

回到@Kolban 的评论,在这种情况下您收到的“错误”可能是从您的云函数主体返回的“逻辑”错误。云函数是客户端进行的 REST 调用。返回码200表示“OK”,而返回码“not”200可能被视为错误。这可能是调用中显示为错误/非错误的内容。左下角的“错误”可能被视为“崩溃”或 Cloud Functions 的其他内部故障,与您的逻辑决定返回的内容不同。

正如@samthecodingman 指出的那样,虽然屏幕截图可能会显示您观察到的内容,但这还不足以找出问题所在。函数的类型、使用方式、调用位置、使用的语言、调用函数的客户端看到的内容等有助于澄清这一点。它可以像 HTTP 请求函数的调用是否返回一样简单HTTP 200 OK

在这种情况下,该问题已通过公共问题跟踪器报告,目前正在由 Google 进行审核。


推荐阅读