오류 보고

아래와 같이 Cloud 함수에서 Stackdriver Error Reporting으로 오류를 내보낼 수 있습니다.

Node.js

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

// These will NOT be reported to Stackdriver Error Reporting
console.info(new Error('I failed you')); // Logging an Error object at the info level
console.error('I failed you'); // Logging something other than an Error object
throw 1; // Throwing something other than an Error object
callback('I failed you');
res.status(500).send('I failed you');

Python

# This WILL be reported to Stackdriver 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 Stackdriver Error Reporting,
# and WILL terminate the function
raise RuntimeError('I failed you')

# WILL NOT be reported to Stackdriver Error Reporting, but will show up
# in logs
import logging
print(RuntimeError('I failed you (print to stdout)'))
logging.warn(RuntimeError('I failed you (logging.warn)'))
logging.error(RuntimeError('I failed you (logging.error)'))
sys.stderr.write('I failed you (sys.stderr.write)\n')

# This WILL be reported to Stackdriver Error Reporting
from flask import abort
return abort(500)

Stackdriver Error Reporting 클라이언트 라이브러리를 사용하면 보다 세밀하게 오류를 보고할 수 있습니다.

Cloud Console의 Stackdriver Error Reporting에서 보고된 오류를 확인할 수 있습니다. 또한 Cloud Console의 함수 목록에서 특정 함수를 선택하면 해당 함수에서 보고된 오류를 확인할 수 있습니다.

함수로 생성되었지만 발견되지 않은 예외는 Stackdriver Error Reporting에 표시됩니다. 일부 포착되지 않은 예외(예: 비동기적으로 발생)는 향후 함수 호출 시 콜드 스타트를 유발할 수 있습니다. 그러면 함수 성능이 저하됩니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud Functions 문서