GCP 云构建查看原始日志 link
GCP cloud build VIEW RAW logs link
我在订阅 Pub/Sub 事件的 GCP 中编写了一个小型云函数。当任何云构建触发功能时 post 消息通过 webbook 进入松弛通道。
作为回应,我们得到了很多触发器名称、分支名称、变量详细信息的详细信息,但我更感兴趣的是 构建日志 URL.
当前正在获取构建日志 URL 作为响应:logUrl: https://console.cloud.google.com/cloud-build/builds/899-08sdf-4412b-e3-bd52872?project=125205252525252
这需要 GCP 控制台访问权限才能检查日志。
虽然在控制台中有一个选项 View Raw。是否可以在事件响应中直接 URL ?这样我就可以直接将它发送到 slack,任何人都可以访问直接日志而无需访问 GCP 控制台。
在您的 Cloud Build 事件消息中,您需要从 JSON 消息中提取 2 个值:
- 日志桶
- id
原始文件存储在这里
<logsBucket>/log-<id>.txt
因此,您可以使用 Cloud Storage 客户端库(首选解决方案)或通过对存储的简单 HTTP Get 调用在函数中轻松获取它 API。
如果您需要更多指导,让我知道您的开发语言,我会向您发送一段代码。
在@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();
如果有人在寻找完整代码,请遵循此 link:https://github.com/harsh4870/Cloud-build-slack-notification/blob/master/singedURL.js
我在订阅 Pub/Sub 事件的 GCP 中编写了一个小型云函数。当任何云构建触发功能时 post 消息通过 webbook 进入松弛通道。
作为回应,我们得到了很多触发器名称、分支名称、变量详细信息的详细信息,但我更感兴趣的是 构建日志 URL.
当前正在获取构建日志 URL 作为响应:logUrl: https://console.cloud.google.com/cloud-build/builds/899-08sdf-4412b-e3-bd52872?project=125205252525252
这需要 GCP 控制台访问权限才能检查日志。
虽然在控制台中有一个选项 View Raw。是否可以在事件响应中直接 URL ?这样我就可以直接将它发送到 slack,任何人都可以访问直接日志而无需访问 GCP 控制台。
在您的 Cloud Build 事件消息中,您需要从 JSON 消息中提取 2 个值:
- 日志桶
- id
原始文件存储在这里
<logsBucket>/log-<id>.txt
因此,您可以使用 Cloud Storage 客户端库(首选解决方案)或通过对存储的简单 HTTP Get 调用在函数中轻松获取它 API。
如果您需要更多指导,让我知道您的开发语言,我会向您发送一段代码。
在@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();
如果有人在寻找完整代码,请遵循此 link:https://github.com/harsh4870/Cloud-build-slack-notification/blob/master/singedURL.js