如何在Google Developers Console中设置成本限制

时间:2014-12-23 08:38:53

标签: google-app-engine google-cloud-storage traffic cost-management

Google Developers Console中的某些功能(如Analytics API)在您达到配额之前是免费的。其他功能(如Google云端存储)会在首次点击时产生费用。

当我在https://console.developers.google.com/ > Storage > Cloud Storage > Storage Browser下上传文件并将此文件公之于众时,我支付每GB流量约0.12美元。

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

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

7 个答案:

答案 0 :(得分:15)

你做不到。从2016年5月7日起,我向谷歌询问了这一点,以下是他们的回复:

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

  

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

     

据说,目前没有任何功能允许你这样做   在GCE上配置有限的预算。这个功能当然可用   对于GAE [1]。正如你在评论中提到的,你要么完全可以   关闭虚拟机(取决于您的使用案例)或将虚拟机设置为   如果达到特定流量限制,则会向您发送提醒[2]。

     

此致

     

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

     

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

@wmdry,你写道:“此链接的流量可能会爆炸” - 我也害怕这一点。这就是我向谷歌询问此事的原因。而且我计划因此而避开谷歌的CDN,而是使用另一个CDN提供商,它有支出限制。因为,与Nginx不同,我认为没有办法限制/限制谷歌的CDN。

我计划使用GCE(Google Cloud Engine)。因此,现在我正在阅读如何限制我的Nginx服务器的速率。因为如果我只是正确配置Nginx,那么你提到的那些$ 0.12 / GB,就不可能爆炸......就像一个月内的$ 10k一样?如果谷歌在几个星期的假期回来时发出1万美元的账单会怎么样呢,这只是因为我的爱好项目和一些人一遍又一遍地下载1 MB电影(因为:邪恶)。嗯,&更大的&我的服务器越快,风险就越高。

我希望Google会增加支出限额,因为我确实想要使用Google的CDN。

答案 1 :(得分:4)

只需访问开发者控制台:

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

  • 选择您的项目。
  • 选择"账单&设置"
  • 启用结算功能。

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

enter image description here

答案 2 :(得分:2)

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

screenshot of GCS documentation warning that budget does not cap API usage

设置仅限提醒的预算,不会限制支出

  1. 转到云平台控制台。
  2. 打开控制台左侧菜单,然后点击结算
  3. 如果您有多个结算帐户,请点击结算帐户名称。
  4. 在左侧,点击预算&警报。
  5. 官方帮助页面:https://support.google.com/cloud/answer/6293540?hl=en

答案 3 :(得分:2)

API使用可以受到硬限制:

  

根据API,您可以明确限制各种请求的数量   方式,包括:每天的请求数,每100秒的请求数以及   每位用户每100秒请求数。您可能想限制   通过设置上限来计费。例如,为避免计费   对于超出免费使用限制的使用,您可以设置请求   每天上限

来自:https://cloud.google.com/apis/docs/capping-api-usage

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:1)

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

完整教程在这里: 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)}`;
};

答案 6 :(得分:0)

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

enter image description here