الإبلاغ عن الأخطاء

الإبلاغ عن الأخطاء تلقائيًا

يمكنك إرسال خطأ من وظيفة السحابة إلى الإبلاغ عن الأخطاء كما هو موضح أدناه:

Node.js

// These WILL be reported to Error Reporting
throw new Error('I failed you'); // Will cause a cold start if not caught

بايثون

@functions_framework.http
def hello_error_1(request):
    # This WILL be reported to Error Reporting,
    # and WILL NOT show up in logs or
    # terminate the function.
    from google.cloud import error_reporting

    client = error_reporting.Client()

    try:
        raise RuntimeError("I failed you")
    except RuntimeError:
        client.report_exception()

    # This WILL be reported to Error Reporting,
    # and WILL terminate the function
    raise RuntimeError("I failed you")


@functions_framework.http
def hello_error_2(request):
    # These errors WILL NOT be reported to Error
    # Reporting, but will show up in logs.
    import logging
    import sys

    print(RuntimeError("I failed you (print to stdout)"))
    logging.warning(RuntimeError("I failed you (logging.warning)"))
    logging.error(RuntimeError("I failed you (logging.error)"))
    sys.stderr.write("I failed you (sys.stderr.write)\n")

    # This is considered a successful execution and WILL NOT be reported
    # to Error Reporting, but the status code (500) WILL be logged.
    from flask import abort

    return abort(500)

إذا كنت تريد المزيد من التقارير الدقيقة عن الأخطاء، فيمكنك استخدام مكتبات عملاء الإبلاغ عن الأخطاء .

يمكنك عرض الأخطاء التي تم الإبلاغ عنها في "الإبلاغ عن الأخطاء" في وحدة تحكم Google Cloud Platform. يمكنك أيضًا الاطلاع على الأخطاء التي تم الإبلاغ عنها من وظيفة معينة عند تحديدها من قائمة الوظائف في وحدة تحكم Google Cloud Platform.

ستظهر الاستثناءات التي لم يتم اكتشافها والتي تنتجها وظيفتك في "الإبلاغ عن الأخطاء". لاحظ أن بعض أنواع الاستثناءات التي لم يتم اكتشافها (مثل تلك التي يتم طرحها بشكل غير متزامن) ستتسبب في حدوث بداية باردة عند استدعاء دالة مستقبلية. يؤدي هذا إلى زيادة مقدار الوقت الذي ستستغرقه وظيفتك للتشغيل.

الإبلاغ عن الأخطاء يدويًا

إرسال إلى التسجيل السحابي

ستقوم وظيفة error من SDK لمسجل وظائف السحابة بالإبلاغ عن الأخطاء إلى كل من Cloud Logging و Error Reporting . لتضمين المزيد من السياق من الخطأ كبيانات منظمة ، قم بتمرير كائن خطأ باعتباره الوسيط الثاني:

} catch (err) {
  // Attach an error object as the second argument
  functions.logger.error(
    "Unable to read quote from Firestore, sending default instead",
    err
  );
}