Google Cloud Functions Node.js 错误报告 - 未记录未处理的拒绝

Google Cloud Functions Node.js Error Reporting - Unhandled Rejections not being logged

我有一个 Node.js 云功能,我正在尝试收到未处理拒绝的警报。如果我抛出未处理的拒绝并导致我的 index.js 入口点崩溃,该错误会显示在错误报告中(尽管由于某种原因我没有收到通知)。这也显示为日志级别“严重”:

如果我在同一 Cloud Function(由 index.js 导入)的不同 .js 文件中抛出相同的未处理拒绝,它不会显示为“严重”日志级别和错误从未在错误报告中报告:

确保我捕获整个 Cloud Function 中所有未处理的拒绝(并确保我收到警报)的正确方法是什么?这就是我在 index.js 入口点初始化错误报告的方式:

const {ErrorReporting} = require('@google-cloud/error-reporting');

      const errors = new ErrorReporting({
        reportUnhandledRejections: true
      });

我从错误报告团队那里得到了关于这个 github 问题的说明:https://github.com/googleapis/nodejs-error-reporting/issues/548

最后,这可能是因为我只是在我的主 index.js 中初始化我的错误报告对象,而不是将它传递给或在我的其他 .js 文件中再次这样做(其中发生实际未处理的拒绝)。一种解决方法是将我的整个 index.js 代码包装在 try / catch(e) 中,并在 catch(e) 块中放入 errors.report(e)。然后,即使在执行期间另一个文件中发生未处理的拒绝,我也会在错误报告中收到通知。