如何从GC存储中删除过时的Firebase云函数容器?

如何从GC存储中删除过时的Firebase云函数容器?,firebase,google-cloud-functions,Firebase,Google Cloud Functions,因此,Firebase最近开始对云功能容器存储收费: 无免费使用$0.026/GB 我已经部署了2个函数好几次了(不超过10次,记不清确切的次数,但这仍然很低,依我看)。现在我已经开了一小笔账单(目前只有零头)。因此,如果我再部署几十次这些函数,我将得到将近一美元,因为旧的(和未使用的)容器不会从存储桶中删除 有没有办法安全地删除过时的、未使用过的容器以释放一些空间?好吧,看起来几分钱不值得花时间,但这仍然不是免费层应该是什么样子 去医院 从汉堡包菜单中的产品中选择“” 您将在那里看到多个存储桶

因此,Firebase最近开始对云功能容器存储收费:

无免费使用$0.026/GB

我已经部署了2个函数好几次了(不超过10次,记不清确切的次数,但这仍然很低,依我看)。现在我已经开了一小笔账单(目前只有零头)。因此,如果我再部署几十次这些函数,我将得到将近一美元,因为旧的(和未使用的)容器不会从存储桶中删除

有没有办法安全地删除过时的、未使用过的容器以释放一些空间?好吧,看起来几分钱不值得花时间,但这仍然不是免费层应该是什么样子

  • 去医院
  • 从汉堡包菜单中的产品中选择“”
  • 您将在那里看到多个存储桶。只需深入挖掘以“artifacts”开头或以“cloudbuild”结尾的bucket,然后删除您不想要的旧文件(按日期)

  • 我发现解决这个问题的唯一有效方法(目前)是定期删除所有工件文件(按照Doug的指示)。正如其他人所指出的,删除一些文件可能会导致后续部署错误(我经历过这些错误)

    重要提示:仅删除工件文件,而不是文件夹,因为这也会导致问题

    您可以正常地进行部分或完全部署,而不会出现任何问题(工件文件似乎只在构建/部署过程中被引用)

    从长远来看并不理想,但至少将存储使用量降至最低(直到它再次开始累积)

    编辑:我在artifacts bucket中试用了生命周期规则,尝试并自动清除容器,但提供的参数不能保证一次清除所有内容(这是您需要的)


    为方便起见,您可以通过选择“添加bucket”选项并从GCP导入bucket,从Firebase存储UI中查看artifacts bucket。

    对于Firebase云功能,您可以从其(后台功能的生命周期部分)中看到:

    当您通过部署更新的代码来更新函数时,旧版本的实例将与云存储和容器注册表中的构建工件一起清理,并由新实例替换

    删除该函数时,所有实例和zip存档以及云存储和容器注册表中的相关构建工件都将被清理。函数和事件提供程序之间的连接已删除

    这意味着无需手动清理,firebase部署脚本将自动执行清理

    您应该而不是删除构建工件,因为云函数会自动伸缩,并且新实例是从这些工件构建的


    我真的不认为成本几乎是一个问题,因为它是0.026$/GB,所以您需要大约76个函数来为其工件存储支付1美元(我认为1个函数工件的大小大约为500mb)。此外,工件的大小不应该随着每个函数的增长而增长,因为它基本上是依赖项的大小,依赖项的大小或多或少地独立于已部署函数的数量。

    嗯。。。当然,我看到了水桶。如果这么简单,我就不会问这个问题了。你有没有注意到那个桶里的文件实际上是Docker图像层文件?因此,有多个文件对应于一个图像。您不能只删除一个“旧”文件,因为它可能是在以后的构建中重用的图像层。同样,函数版本和bucket中的文件之间没有1:1的关系,这不是这样的。您可能有一个层,用于所有后续图像,永远(理论上)。请看:因为这个话题超出了我的问题范围。我想你已经回答了你自己。如果在所有后续映像中都使用了层,那么几乎不可能在不影响部署的情况下删除它们。删除以前的层可能会延长您的CFs部署时间。看看这个问题:我在云控制台中的“存储浏览器”是空的,但我的Firebase控制台显示我的存储正在使用717MB,发送了1.8GB和2.2k请求。我从未使用过存储(但使用过函数),只是启用了它,试图了解发生了什么。我被收取了几美分的费用。我担心,当应用程序去刺激这将收取我疯狂和不适当的。谷歌真的应该修复它/提供更好的信息。