【问题标题】:Is there a way to limit Firebase's Blaze plan?有没有办法限制 Firebase Blaze 计划?
【发布时间】:2020-08-29 14:41:54
【问题描述】:

我目前正在使用社交网络应用程序,我需要执行搜索功能。 Firestore 不支持这类查询,所以我需要使用像 Algolia 这样的外部服务。

问题是免费计划不支持连接到谷歌自己以外的外部网站/API,所以我无法连接到 Algolia 以使我的搜索系统正常工作。

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

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

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

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

【问题讨论】:

  • 我会说,对于像将内容镜像到 Algolia 这样的事情,很难编写一个意外循环。仅当您有一个触发器执行某些操作来触发自身(例如写回数据库的数据库触发器),而没有检测到适当的退出条件并提前终止时,才会发生意外循环。如果您只想将数据复制到数据库之外,并且您永远不想写回数据库,那么您编写循环的机会是 0。
  • 在这种情况下我完全同意你的看法。但我们将使用许多 Firestore 工具,而不仅仅是外部连接。我们已经在不断地使用函数、数据库、存储,而且我们很快就会扩展它们并更多地使用它们。这就是我担心可能发生意外循环的地方,特别是考虑到这是我们第一次使用 Firebase 和大规模后端开发这一事实。如果我们现在有一个循环,我们将受到免费计划的限制,我们不会收到账单。但如果它发生在 Blaze 计划中,即使我们可以设法“取消”它,也会很烦人。
  • 在部署到生产环境之前,有一个暂存区可能会对您有所帮助,您可以在其中测试您的代码是否存在此类错误,因为这确实很昂贵。
  • 无论如何,所有 Firebase 项目也是 Google Cloud 项目,因此无论 Google Cloud 提供什么,您都可以访问。根据副本,这并不多。
  • @DougStevenson 你知道谷歌为什么禁用“支出限制”吗?

标签: firebase google-cloud-firestore algolia


【解决方案1】:

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

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

有关更多信息,请参阅:

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


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

【讨论】:

  • 似乎计费警报和封顶可能会延迟几天!请参阅您的链接:“在产生成本和接收预算通知之间最多有几天的延迟。由于从使用资源到对活动计费的时间延迟,您可能会产生额外的成本用于在所有服务停止时尚未到达的使用量。遵循此上限示例中的步骤并不能保证您的支出不会超过预算。"
【解决方案2】:

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

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

在发帖者的情况下它被禁用,但我认为这只是因为他将它连接到“NodeJS App Engine 应用程序”,这对许多 Firebase 开发人员来说并非如此。

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

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

【讨论】:

  • 我可以将其设置为 0 美元,但不确定它是否有效,因为我使用的帐户不足以超过免费限制。
  • 消费限额已被取消。重要提示:Cloud Firestore 不再支持新的 App Engine 支出限制。 2019 年 12 月 12 日之后,您将无法应用新的 App Engine 支出限额。 12 月 12 日之前设置的支出限额仍然适用。
【解决方案3】:

您现在无法为您的应用设置支出限额。

自 2019 年 12 月 12 日起,您无法再设置支出限额,但 您可以更改或删除现有的支出限额。

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

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

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

【讨论】:

  • 难以置信。保护 Firestore 客户免于破产(由于人为错误或 DDOS 攻击)的功能已经存在。但谷歌删除了它!
  • @Sébastien 你能提供他们拥有和删除它的来源吗?
  • @Daniyel.Me 来源在上面的答案中。过去可以设置“硬”支出限制。这就是我所需要的,但它已经消失了?
【解决方案4】:

“此示例向您展示了如何通过禁用 Cloud Billing 来限制项目的成本和停止使用。这将导致所有 Google Cloud 服务终止该项目的非免费层级服务。”

Google Cloud Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多