【问题标题】:GCP cloud build VIEW RAW logs linkGCP 云构建查看原始日志链接
【发布时间】:2021-01-08 10:36:07
【问题描述】:

我在 GCP 中编写了一个订阅 Pub/Sub 事件的小型云功能。当任何云构建触发功能时,通过 webbook 将消息发布到松弛通道。

作为回应,我们得到了很多细节来触发名称、分支名称、变量细节,但我对构建日志 URL 更感兴趣。

当前获取构建日志 URL 的响应如下:logUrlhttps://console.cloud.google.com/cloud-build/builds/899-08sdf-4412b-e3-bd52872?project=125205252525252

这需要 GCP 控制台访问权限才能检查日志。

在控制台中有一个选项View Raw。是否可以在事件响应中获取该直接 URL?这样我就可以直接将它发送到 slack,任何人都可以直接访问日志,而无需访问 GCP 控制台。

【问题讨论】:

  • 把函数代码贴出来,大家帮忙
  • @NeatNerd 代码中没有任何内容实际上与代码无关,代码中只是打印由于云触发事件而生成的数据。在数据中,我正在获取日志的 cosole URL,但我正在寻找添加 View Raw URL 的方法。

标签: google-cloud-platform google-cloud-functions google-cloud-build


【解决方案1】:

在您的 Cloud Build 事件消息中,您需要从 JSON 消息中提取 2 个值:

  • 日志桶
  • 身份证

原始文件存储在这里

<logsBucket>/log-<id>.txt

因此,您可以使用 Cloud Storage 客户端库(首选解决方案)或通过简单的 HTTP Get 调用存储 API 在您的函数中轻松获取它。

如果您需要更多指导,请告诉我您的开发语言,我会给您发一段代码。

【讨论】:

  • 非常感谢@guillaume-blaquiere。你的这个答案也很有帮助。 stackoverflow.com/questions/58235945/…你让我开心。再次感谢。
  • 我同时获得了日志存储桶和 txt,但无法从 GCS 控制台访问存储桶,它是 _Default 存储桶。我必须更改和更新存储桶吗?
  • 我虽然您想将原始日志发布到 Slack。我认为您可以在 slack 频道上发布文件,这是解决方案之一(在您的函数中下载文件并将其发布到频道)。另一种解决方案是将存储桶(或仅具有 ACL 的文件)公开并共享链接。但是,是公开的。如果有机密日志(例如机密),将这些日志文件公开是很危险的。
  • 签名的 URL 很好,但是有过期时间。这就是为什么我没有提出它,但如果它符合您的要求,这是最好的解决方案!
  • 你们是同一个项目吗?
【解决方案2】:

@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 2020-05-24
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多