如何解决GCP 云构建查看原始日志链接
我在 GCP 中编写了一个小云函数,它订阅了 Pub/Sub 事件。当任何云构建触发功能时,通过微信将消息发布到 slack 频道。
作为回应,我们获得了很多触发名称、分支名称、变量详细信息的详细信息,但我对构建日志 URL 更感兴趣。
当前获取构建日志 URL 的响应类似于:logUrl:https://console.cloud.google.com/cloud-build/builds/899-08sdf-4412b-e3-bd52872?project=125205252525252
需要 GCP 控制台访问权限才能检查日志。
虽然在控制台中有一个选项查看原始。是否可以在事件响应中获得该直接 URL?这样我就可以直接将它发送到 slack,任何人都可以在没有 GCP 控制台访问权限的情况下访问直接日志。
解决方法
在您的 Cloud Build 事件消息中,您需要从 JSON 消息中提取 2 个值:
- 日志桶
- id
原始文件存储在这里
<logsBucket>/log-<id>.txt
因此,您可以通过 Cloud Storage 客户端库(首选解决方案)或对存储 API 的简单 HTTP Get 调用在您的函数中轻松获取它。
如果您需要更多指导,请告诉我您的开发语言,我会向您发送一段代码。
,在@guillaume blaquiere 的帮助下。
只分享云函数中生成云构建日志singedURL的一段代码。
var filename ='log-' + build.id + '.txt';
var file = gcs.bucket(BUCKET_NAME).file(filename);
const getURL = async () => {
return new Promise((resolve,reject) => {
file.getSignedUrl({
action: 'read',expires: Date.now() + 76000000
},(err,url) => {
if (err) {
console.error(err);
reject(err);
}
console.log("URL");
resolve(url);
});
})
}
const singedUrl = await getURL();
如果有人要寻找完整的代码,请点击此链接:https://github.com/harsh4870/Cloud-build-slack-notification/blob/master/singedURL.js
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。