关于这个问题,我已经找过了,什么也找不到。
我已经部署了一些用JavaScript编写的Google函数,它利用以下函数来报告错误。这些函数成功运行,但我收到了以下错误:
TypeError: logging.log不是reportError上的函数(/user_code/index.js:158:23)
const logging = require('@google-cloud/logging');reportError函数:
function reportError(err, context = {}) {
const logName = 'errors';
const log = logging.log(logName);
// https://cloud.google.com/logging/docs/api/ref_v2beta1/rest/v2beta1/MonitoredResource
const metadata = {
resource: {
type: 'cloud_function',
labels: {function_name: process.env.FUNCTION_NAME},
},
};
// https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorEvent
const errorEvent = {
message: err.stack,
serviceContext: {
service: process.env.FUNCTION_NAME,
resourceType: 'cloud_function',
},
context: context,
};
// Write the error log entry
return new Promise((resolve, reject) => {
log.write(log.entry(metadata, errorEvent), (error) => {
if (error) {
return reject(error);
}
return resolve();
});
});
}
// [END reporterror]发布于 2019-04-03 13:06:03
目前,通过将“logging”变量的初始化更改为,将YOUR_PROJECT_ID替换为创建这些云函数的项目id:
const logging = new (require('@googlecloud/logging')).Logging({projectId:'YOUR_PROJECT_ID'});应该管用的。
您可以通过多种方式更改代码,但根据您在这里发布的新版本(只需相应地编辑projectId变量):
const google_cloud_logging = require('@google-cloud/logging');
function reportError(err, context = {}) {
const logName = 'errors';
const projectId = '';
const logging = new google_cloud_logging.Logging({projectId: projectId});
const log = logging.log(logName);
// https://cloud.google.com/logging/docs/api/ref_v2beta1/rest/v2beta1/MonitoredResource
const metadata = {
resource: {
type: 'cloud_function',
labels: {function_name: process.env.FUNCTION_NAME},
},
};
// https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorEvent
const errorEvent = {
message: err.stack,
serviceContext: {
service: process.env.FUNCTION_NAME,
resourceType: 'cloud_function',
},
context: context,
};
// Write the error log entry
return new Promise((resolve, reject) => {
log.write(log.entry(metadata, errorEvent), (error) => {
if (error) {
return reject(error);
}
return resolve();
});
});
}
// [END reporterror]此更改基于下面的例子。
https://stackoverflow.com/questions/55493926
复制相似问题