首页 > 解决方案 > 在不访问 Billing API 的情况下监控 GCP 支出

问题描述

我在一所大型大学管理着一个小型研究小组,该小组管理着数百个 GCP 帐户。大学担任计费管理员,我的研究小组被分配了一个 GCP“项目”来完成我们所有的工作。但是,出于隐私原因,他们无法让我访问 Billing API,因为这将允许我查看其他实验室的计费详细信息。

因为我们实验室中有会犯错误的学员,所以我想设置一个自动化系统来监控我们当前的 GCP 账单,并且 (1) 发送通知或 (2) 在账单达到某些预定义限制时终止所有 VM。例如,如果我们的每月预算是 1 万美元,那么我希望收到 5 千美元的通知,另一个 1 万美元的通知,我希望以 1 万 5 千美元的价格终止所有虚拟机。

我的问题是,为了实现这样的系统,我需要访问 Billing API。我已经联系了我的系统管理员,他们说这是不可能的。相反,他们建议我编写一个脚本,列出所有虚拟机并使用成本计算器估算我每月的 GCP 账单。

然而,这似乎有点迂回。当我使用 Google Cloud Console 时,我可以看到我的项目的总成本和预测成本,因此我似乎应该能够以编程方式访问这些信息。但是,我找不到任何有关如何执行此操作的信息,因为所有解决方案都需要我激活 Billing API。有任何想法吗?

标签: google-cloud-platformgoogle-bigquerygoogle-cloud-functionsgoogle-cloud-billing

解决方案


没有 API 可以获取您在 Google Cloud Console 中看到的数据。您需要导出计费数据,然后处理每一行数据以生成报告。

我能想到的有两种选择:

选项 1) 要求管理员设置将结算数据导出到 BigQuery。授予您查询计费表的权限。然后,您可以查询 BiGQuery 以生成您自己的成本报告。

设置 Cloud Billing 数据导出到 BigQuery

选项 2) 为您的项目创建一个单独的计费帐户并授予您权限。一个 GCP ORG 可以将多个结算帐户绑定到同一个付款帐户。此选项支持创建预算警报。


推荐阅读