stackdriver node.js记录未显示



我有一个node.js应用程序,在码头容器内运行,并使用stackdriver进行记录事件。

这是一个node.js应用程序,使用Express.js和Winston运行,用于记录和使用StackDriverTransport。

当我本地运行此容器时,所有内容都会正确记录并显示在云控制台中。当我运行具有相同环境变量的相同容器时,在GCE VM中,日志不会显示。

您确切地说是在本地的意思?您是否正在运行云外壳上的容器,而在实例上运行它?请记住,如果您创建一个需要执行需要特权的事情的容器或实例(例如StackDriver Logging客户端库(并运行它,如果该实例没有设置该角色/特权的服务帐户,则它会赢工作。

yu提到您使用了相同的环境变量,我将其中一个env vars指向您的JSON密钥文件。实例中该路径中的密钥文件是否存在?

从Winston文档中,您似乎需要指定服务帐户的密钥文件位置:

  const winston = require('winston');
  const Stackdriver = require('@google-cloud/logging-winston');
  winston.add(Stackdriver, {
    projectId: 'your-project-id',
    keyFilename: '/path/to/keyfile.json'
  });

您是否检查了是否使用具有记录角色的服务帐户的密钥定义?

最新更新