50

在您达到配额之前,Google Developers Console 中的某些功能(例如 Analytics API)是免费的。其他功能(例如 Google Cloud Storage)会从第一次点击中产生费用。

当我上传一个文件https://console.developers.google.com/ > Storage > Cloud Storage > Storage Browser并公开此文件时,我为每 GB 流量支付约 0.12 美元。

但从理论上讲,此链接的流量可能会爆炸,例如因为突然流行。因此,我想设置类似每日或每月的成本限制。

问:如何保护自己免受 Google Developers Console 中过高成本的影响?

4

7 回答 7

27

你不能。从 2016 年 5 月 7 日起,我向 Google 询问了这个问题,这是他们的回复:

(GCE = 谷歌云引擎。没有支出限制
。GAE = 谷歌应用引擎——是的,它有支出限制。)

...您有资格获得支持...仅...
... [各种有用的链接] ...

话虽如此,目前还没有允许您在 GCE 上配置有限预算的功能。GAE [1] 肯定可以使用此功能。正如您在评论中提到的,您可以完全关闭您的虚拟机(取决于您的用例)或设置虚拟机在达到特定流量限制时向您发送警报 [2]。

真挚地,

某人的名字
技术解决方案代表
谷歌云平台

[1] https://cloud.google.com/appengine/docs/quotas
[2] https://cloud.google.com/monitoring/support/notification-options

@wmdry,你写道:“这个链接的流量可能会爆炸”——我也害怕这个。这就是我向谷歌询问这个问题的原因。因此,我计划避免使用 Google 的 CDN,而是使用另一个有支出限制的 CDN 提供商。因为,与 Nginx 不同,我看不到任何方式来限制/限制 Google 的 CDN。

不过,我确实计划使用 GCE(谷歌云引擎)。因此,现在我正在阅读有关如何限制我的 Nginx 服务器的速率。因为如果我只是正确配置 Nginx,那么你提到的 0.12 美元/GB 不可能在一个月内爆炸到 1 万美元?如果我从几个星期的假期回来时谷歌发送了一张 1 万美元的账单,这只是因为我的爱好项目和一些人永远一遍又一遍地下载 1 MB 的电影(因为:邪恶)。嗯,我的服务器越大越快,风险就越高。

我希望谷歌会增加支出限制,因为我确实想使用谷歌的 CDN。

2020 年更新:显然,这确实不时会咬人——看这里:
“烧掉 72,000 美元测试 Firebase 和 Cloud Run,几乎破产了”,2020 年 12 月 8 日,https ://news.ycombinator.com/item?id= 25372336,这样的话,他们可以联系谷歌,最终不需要支付。

于 2016-06-30T14:42:14.603 回答
13

自 2017 年 7 月起,您可以设置通过电子邮件发送通知但不限制支出的预算:

GCS 文档的屏幕截图,警告预算不会限制 API 的使用

要设置仅警报预算,该预算不会限制支出

  1. 转到云平台控制台。
  2. 打开控制台左侧菜单,然后单击计费
  3. 如果您有多个计费帐户,请单击计费帐户名称。
  4. 在左侧,点击预算和提醒。

官方帮助页面:https ://support.google.com/cloud/answer/6293540?hl=en

于 2017-07-24T13:16:29.717 回答
10

我发现 Google 的文档现在提供了两种方法来实际限制 GCP 项目的成本。它涉及以下设置:

  1. 创建一个云函数,根据预算检查成本,并在成本超出预算时执行特定操作。Google 的文档提供了一个示例代码片段,可以关闭项目中的所有 VM 实例或禁用项目计费。关闭所有虚拟机将停止所有与虚拟机相关的成本,但您可以保留数据(并且仍然需要为存储付费)。禁用项目计费将有效地取消所有与成本相关的活动,并且您可能会丢失数据。您可以将 Cloud Function 命名为“budget-enforcer”。
  2. 上面提供的 Google 代码片段有一个硬编码的 ZONE 变量。请记住更改它以匹配您的区域!
  3. 创建一个服务帐户以运行云功能“预算执行器”。要关闭 VM,服务帐户需要角色“Compute Instance Admin (v1)”。要禁用项目计费,服务帐户需要角色“项目计费经理”。
  4. 为云函数设置一个主题(我称我为“proj-name-stop-vm”和“proj-name-disable-bill”)。
  5. 像往常一样设置预算警报,并将其连接到上面的 Pub/Sub 主题之一。

请注意,Google 的文档确实提到成本超出预算和触发功能之间可能存在延迟,因此如果您有绝对的硬成本限制,则应建立缓冲区。我使用 90% 的预算作为关闭实例的触发线。

于 2019-04-02T00:32:42.077 回答
8

API 使用可以通过硬限制来限制:

根据 API,您可以通过多种方式明确限制请求,包括:每天的请求、每 100 秒的请求以及每位用户每 100 秒的请求。您可能希望通过设置上限来限制可计费的使用量。例如,为了防止因超出免费礼遇使用限制而被计费,您可以设置每日请求上限

资源

于 2018-11-03T21:10:51.780 回答
5

只需转到开发者控制台:

https://console.developers.google.com/project

  • 选择您的项目。
  • 选择“账单和设置”
  • 启用计费。

然后转到 Compute/AppEngine/Settings 并设置每日预算。

在此处输入图像描述

于 2014-12-23T11:10:33.847 回答
2

转到 Google Cloud 控制台,然后转到帐单/预算和警报,并为您的一个或所有项目创建新预算。您可以选择哪些服务应包含在限制中,并设置不应超过的每月金额。

在此处输入图像描述

于 2020-12-02T13:20:36.087 回答
2

您可以将预算发布/订阅警报与云功能相结合,如果达到阈值,该功能可以禁用整个帐户的计费。

完整教程在这里: https ://www.youtube.com/watch?v=KiTg8RPpGG4

GitHub 回购: https ://github.com/aioverlords/Google-Cloud-Platform-Killswitch

禁用计费

const _disableBillingForProject = async projectName => {
const res = await billing.updateBillingInfo({
    name: projectName,
    resource: {
        billingAccountName: ''
    }, // Disable billing
});
console.log(res);
console.log("Billing Disabled");
return `Billing disabled: ${JSON.stringify(res.data)}`;
};
于 2021-01-07T11:06:45.573 回答