Как сообщить об ошибке

Автоматическая отправка отчетов об ошибках

Вы можете передать ошибку из функции в Error Reporting, как показано ниже.

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)

Если вам нужны более подробные отчеты об ошибках, используйте клиентские библиотеки Error Reporting.

Вы можете посмотреть зарегистрированные ошибки в Error Reporting в консоли Google Cloud. Вы также можете посмотреть ошибки, связанные с определенной функцией, выбрав ее из списка функций в консоли Google Cloud.

Неперехваченные исключения, созданные вашей функцией, появятся в Error Reporting. Обратите внимание, что некоторые типы необработанных исключений (например, асинхронные) могут привести к холодному запуску при следующем вызове функции. Это увеличивает количество времени, которое потребуется для выполнения вашей функции.

Как вручную сообщать об ошибках

Импорт зависимостей

Чтобы сообщить об ошибке в Error Reporting из функции, импортируйте функцию error из SDK logger Cloud Functions:

// All available logging functions
const {
  log,
  info,
  debug,
  warn,
  error,
  write,
} = require("firebase-functions/logger");

Отправка сюда: Cloud Logging…

Функция error из SDK logger Cloud Functions будет отправлять отчеты об ошибках как в Cloud Logging, так и в Error Reporting. Чтобы добавить в ошибку больше контекста в виде структурированных данных, передайте объект ошибки в качестве второго аргумента:

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