Stackdriver 有一个错误报告 API。 Documentation for Stackdriver API 具有 REST 功能,这意味着您可以使用 UrlFetchApp.fetch(url) 从 Apps 脚本调用它,其中 url 是获取错误报告信息所需的 url。 Stackdriver API 的基本 url 是:https://clouderrorreporting.googleapis.com API 必须启用。
API 可以使用多种方法。
你可能需要的方法是list方法,它需要url:
https://clouderrorreporting.googleapis.com/v1beta1/{projectName=projects/*}/events
其中projectName 参数必须是 Google Cloud Platform 项目 ID。
请参阅list 上的文档:projects.events.list
该 HTTPS 请求的返回值,如果成功,是具有以下结构和数据的“响应体”:
{
"errorEvents": [
{
object (ErrorEvent)
}
],
"nextPageToken": string,
"timeRangeBegin": string
}
ErrorEvent 是一个 JSON 对象,具有以下结构和数据:
{
"eventTime": string,
"serviceContext": {
object (ServiceContext)
},
"message": string,
"context": {
object (ErrorContext)
}
}
所以,如果您想从 Stackdriver 发送包含错误数据的电子邮件,它不会直接从 Stackdriver 发送,您需要从 Apps Script 向 Stackdriver 发出请求,获取错误信息,然后发送电子邮件来自 Apps 脚本。
当然,您可以拥有自己的错误处理系统,使用 UrlFetchApp.fetch(url); 将错误信息记录到某个外部目标(例如您的电子表格或数据库);
要向 Stackdriver API 发出请求,您需要如下代码:
var projectID = "Enter project ID";
var url = 'https://clouderrorreporting.googleapis.com/v1beta1/' + projectID
+ '/events';
var tkn = ScriptApp.getOAuthToken();
var options = {};
options.headers = {Authorization: 'Bearer ' + tkn}
options.muteHttpExceptions = true;
var rtrnObj = UrlFetchApp.fetch(url,options);
Logger.log(rtrnObj.getContentText())
我没有使用过这个 API,也没有测试过这个代码。如果有人使用它,并且有信息或发现错误,请发表评论。