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