Google 无需我的干预即可创建存储桶

Posted

技术标签:

【中文标题】Google 无需我的干预即可创建存储桶【英文标题】:Google creates a storage bucket without my interaction 【发布时间】:2021-04-27 17:23:26 【问题描述】:

我正在检查我在 Google Cloud 上的基础架构点,以消除任何丢失点...

然后我注意到谷歌云存储有 5 个存储桶 [即使我刚刚创建了其中 2 个] 这 5 个桶是: 1 - 我创建的存储桶 2 - 我创建的存储桶 3 - PROJECT.backups 4 - gcf-sources-CODE-us-central1 5 - us.artifacts.PROJECT.appspot.com

我了解备份存储桶来自 firebase 实时数据库备份,而源存储桶来自 firebase 云功能代码。但是工件桶从何而来?仅此存储桶的大小是所有其他存储桶总和的两倍。

其内容只是名为“sha256:HASH”的二进制文件,其中一些大于 200MB

我删除了这个存储桶,第二天又[没有我的互动]重新创建了它。

有谁知道它可能会被用来做什么?我怎样才能找到它?它是干什么用的?

【问题讨论】:

不要删除工件存储区(#4 和#5)。它们由 Google Cloud 服务代表您使用,例如 Cloud Build 和 Container Registry。 我确实删除了它,它似乎继续正常工作...... 3 天过去了,我仍然没有收到任何可能来自此的错误。我的大部分 GC 都是 node.js 函数(我有大约 20 个,但都很简单,没有很多导入)所以为什么它会变得这么大? (超过 2GB) 阅读有关 Container Registry、Artifact Registry 和 Cloud Build 的 Google 文档。在当今世界,2 GB 很小。 【参考方案1】:

us.artifacts.<project id>.appspot.com 存储桶由 Cloud Build 创建和使用,用于存储 Cloud Build 服务生成的容器镜像。在此存储桶中生成对象的过程之一是 Cloud Function,您可以实现这一点,因为在您第一次创建函数时,GCP 会要求您启用 Cloud Build API,并且此存储桶会出现在 Cloud Storage 部分中。 App Engine 还会在您每次部署新版本的应用程序时将对象存储在此存储桶中。

正如文档中提到的,对于 App Engine,一旦部署完成,us.artifacts.<project id>.appspot.com 存储桶中的图像就不再需要,因此删除它们是安全的。但是,如果您只是使用 Cloud Functions,不建议删除此存储桶中的对象。虽然你现在没有遇到问题,但是以后有可能会遇到,所以不用手动删除所有对象,你可以使用Lifecycle Object Management每隔一定时间删除这个桶里的对象,例如,每 7 天。您可以 do it 导航到 us.artifacts.<project id>.appspot.com 存储桶的生命周期选项卡并添加一个新的生命周期规则,该规则将删除使用期限超过 X 天的对象。

【讨论】:

【参考方案2】:

这是您的 docker 注册表。每次推送(通过docker push 或使用Cloud Build 服务)时,GCP 都会将图像层存储在这些存储桶中。

【讨论】:

我确实删除了它,它似乎继续正常工作...... 3 天过去了,我仍然没有收到任何可能来自此的错误。我的大部分 GC 都是 node.js 函数(我有大约 20 个,但都很简单,没有很多导入)所以为什么它会变得这么大? (超过 2GB)

以上是关于Google 无需我的干预即可创建存储桶的主要内容,如果未能解决你的问题,请参考以下文章

如何安排无需用户干预即可唤醒 iOS 应用程序的警报

无需用户干预即可自动更新 Android 应用程序

使用curl将数据加载到来自存储桶的Cloud SQL(Google云端平台)

Js/jQuery 无需用户干预即可播放短声音

Cloudfront 提供通过 AWS CDK Python 为 S3 存储桶来源创建的访问被拒绝响应,无需公共访问

从 Google Cloud 内部 IP 调用 Google Cloud 存储桶