本文档介绍了如何在费用达到或超过项目预算时自动停用项目的结算功能。停用项目结算功能后,您将终止该项目中的所有 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 的项目。
点击部署。
配置服务账号权限
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。
后续步骤
查看其他程序化通知示例,了解如何执行以下操作: