รายงานข้อผิดพลาด

การรายงานข้อผิดพลาดโดยอัตโนมัติ

คุณสามารถส่งข้อผิดพลาดจาก Cloud Function ไปยัง การรายงานข้อผิดพลาด ดังที่แสดงด้านล่าง

Node.js

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

Python

@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)

หากต้องการรายงานข้อผิดพลาดอย่างละเอียดมากขึ้น คุณสามารถใช้คอลัมน์ ข้อผิดพลาด ลูกค้าที่รายงาน ห้องสมุด

คุณสามารถดูข้อผิดพลาดที่รายงานได้ในการรายงานข้อผิดพลาด ในคอนโซล GCP นอกจากนี้คุณยังดูข้อผิดพลาดที่รายงานจาก ฟังก์ชันที่เจาะจงเมื่อคุณเลือกจากรายการฟังก์ชันในคอนโซล GCP

ข้อยกเว้นที่ไม่ถูกตรวจจับซึ่งเกิดจากฟังก์ชันของคุณจะปรากฏใน "การรายงานข้อผิดพลาด" โปรดทราบว่าข้อยกเว้นที่ตรวจจับไม่ได้บางประเภท (เช่น ข้อยกเว้นที่ตรวจจับไม่ได้) ไม่พร้อมกัน) จะทำให้ไม่อยู่ เริ่มเมื่อ เป็นการเรียกใช้ฟังก์ชันในอนาคต ซึ่งจะเพิ่มระยะเวลาในการให้ฟังก์ชัน ในการเรียกใช้

การรายงานข้อผิดพลาดด้วยตนเอง

กำลังส่งไปยัง Cloud Logging

ฟังก์ชัน error จาก Cloud Functions ล็อกเกอร์ SDK จะรายงานข้อผิดพลาดทั้งไปยัง Cloud Logging และการรายงานข้อผิดพลาด หากต้องการรวมบริบทเพิ่มเติมจากข้อผิดพลาดเป็นข้อมูลที่มีโครงสร้าง ให้ส่งออบเจ็กต์ข้อผิดพลาดเป็นอาร์กิวเมนต์ที่ 2 ดังนี้

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