有没有办法限制 Firebase 的 Blaze 计划?

Is there a way to limit Firebase's Blaze plan?

我目前在社交网络应用中工作,我需要做一个搜索功能。 Firestore 不支持这类查询,所以我需要使用像 Algolia 这样的外部服务。

问题是免费计划不支持连接到 Google 自己以外的外部 websites/APIs,所以我无法连接到 Algolia 让我的搜索系统正常工作。

我读过很多关于开发人员因代码中的循环或错误而支付高额账单的故事,并且由于 Blaze 计划是一种即付即用的计划,他们会按使用量付费。如果一个循环生成 10TB 的文件,他们将为此付费。

我也知道 Blaze 计划的功能是免费的,只要它们中的每一个(单独)保持在免费 Spark 计划的限制之下。

正如我的问题所说,有没有办法设置限制?例如,我想告诉 Firebase 将我的云函数调用限制为每月 100k。这样它将是免费的,而且我永远无法获得超过 100k,因为它是有限的,这意味着我永远不会为此付费。

考虑到我现在唯一付费计划需要的是与外部网络的连接。我不需要其他任何东西,因为我们才刚刚开始,应用程序还没有投入生产,所以不需要很大的限制。

每个 Firebase 项目也是一个 Google 云平台项目。这意味着 Google Cloud Platform 的许多高级功能也可用于您的 Firebase 项目。

例如,您可以为您的 Firebase 项目设置账单提醒,以便在使用量达到一定水平时提醒您。虽然您无法将其配置为在某个时候关闭项目,但警报通常应该非常适合提醒您注意异常使用模式。

有关此的更多信息,请参阅:

GCP 文档现在也有关于 capping (disabling) billing to stop usage 的部分。这是一种蛮力方法,可能会导致数据丢失,因此我建议先调查所有其他选项。


更新(2020 年 12 月):Firebase 的 Todd Kerpelman 刚刚使用上述文档中的流程发布了 series of videos where he disables billing

此处的屏幕截图似乎显示了 Firebase 项目的支出限制设置:Firebase: Budget and Daily Spending Limit

该设置页面位于此处(支出限制设置显然只在您为项目设置结算后才会显示):https://console.cloud.google.com/appengine/settings

它在发帖者的案例中被禁用,但我认为那只是因为他将它连接到 "NodeJS App Engine app",许多 Firebase 开发人员并非如此。

我自己还没有尝试过,但一旦我开始付费计划就会尝试。

编辑:是的,一旦您切换到付费计划,设置就会出现。 (就我而言,Blaze)我还没有足够的流量来确认它是否按预期工作,但如果我稍后发现它没有,我会在这里提供更新。

您现在无法为您的应用设置消费限额。

As of December 12, 2019, you can no longer create spending limits, but you can change or remove existing spending limits.

https://cloud.google.com/appengine/pricing#spending_limit

您可以创建预算,它会在达到预算时提醒您。但它不会在达到预算时停止使用。

https://cloud.google.com/billing/docs/how-to/budgets#add-new-budget

“此示例向您展示如何通过禁用云计费来限制成本并停止项目的使用。这将导致所有 Google 云服务终止非免费层服务项目。"

Google Cloud Source