本文档介绍了如何在费用达到或超过项目预算时自动对项目停用结算。对项目停用结算后,您将终止该项目中的所有 Google Cloud 服务,包括免费层级服务。如需更精细地响应预算通知,请参阅通过通知控制资源用量。
您可能会因为 Google Cloud的相关开支存在金额上限,而需要限制费用。在这些情况下,当达到预算限制时,您可能愿意关停所有 Google Cloud 服务并停止使用,以避免产生费用。对项目停用结算是停止在该项目中产生费用的有效方法。
限制
从产生费用到收到预算通知是有延迟的,因此在停止所有服务时,尚未达到的使用量可能会产生一些额外的费用。按照此示例中的步骤操作并不能保证您的支出不会超出预算。如果您的资金有限,请将您的预算上限设置为低于您的可用资金,以应对账单延迟。
您无法对已锁定到结算账号的项目停用结算。如需详细了解如何锁定和解锁项目,请参阅保护项目与其结算账号之间的关联性。
准备工作
在开始之前,您必须先完成以下任务:
设置 Cloud Run 函数
如需为项目停用 Cloud Billing,请创建 Cloud Run 函数并将其配置为调用 Cloud Billing API。
- 完成创建 Cloud Run 函数中的步骤。确保将触发器类型设置为预算将使用的同一 Pub/Sub 主题。
添加以下依赖项:
Node.js
将以下内容复制到
package.json
文件中:Python
将以下内容复制到
requirements.txt
文件中:将以下代码复制到您的 Cloud Run 函数中:
Node.js
Python
将入口点设置为要执行的正确函数:
Node.js
将入口点设置为
stopBilling
。Python
将入口点设置为
stop_billing
。查看自动设置的环境变量的列表,以确定是否需要手动将 GOOGLE_CLOUD_PROJECT 变量设置为您要停用 Cloud Billing 的项目。
点击部署 (DEPLOY)。
配置服务账号权限
Cloud Run 函数作为自动创建的服务账号运行。 如需停用结算,您需要通过完成以下步骤,向该服务账号授予项目中需要修改的任何服务的相应权限:
- 通过查看 Cloud Run 函数的详细信息,确定正确的服务账号。该服务账号显示在页面底部。
前往 Google Cloud 控制台中的 IAM 页面,设置相应权限。
如需修改结算账号权限,请在 Google Cloud 控制台中前往“结算”账号管理页面,将服务账号添加为 Cloud Billing 账号的主账号,然后设置适当的结算账号权限。
详细了解如何为 Cloud Billing 账号配置权限。
测试 Cloud Billing 是否已停用
当预算发出通知时,指定的项目将不再拥有与之关联的 Cloud Billing 账号。如需确保您的函数按预期运行,请按照测试 Cloud Run 函数中的步骤操作。
如果成功,Cloud Billing 账号下将不再显示此项目,且此项目中的资源(包括同一项目中的 Cloud Run 函数)已停用。
如需继续使用项目中的 Google Cloud 资源,请在Google Cloud 控制台中为项目手动重新启用 Cloud Billing。
后续步骤
查看其他程序化通知示例,了解如何执行以下操作: