Google Cloud
Google Cloud 没有能直接回答"这个月花了多少"的 API。它的账单是结算账号写进 BigQuery 数据集的导出,CloudBridge 读的就是这个:每个月一次查询,得到按服务、SKU、项目和区域 按天的费用。赠金——免费层、承诺使用折扣、促销——单独成行,所以用量记的是抵扣前的金额。
打开账单导出
导出只包含开启当天以后的数据,所以先做这一步,哪怕还没安装 CloudBridge。
- 在 Google Cloud 控制台,打开 结算 → 结算导出 → BigQuery 导出。
- 在 标准用量费用 下点 修改设置,选一个项目,为它新建一个数据集(比如
billing),保存。 - 第一批数据到达后(一天之内),数据集里会出现一张名为
gcp_billing_export_v1_加结算账号 ID 的表。在 BigQuery 里打开它,点 复制 ID:这就是 CloudBridge 要的 Billing export table,例如my-project.billing.gcp_billing_export_v1_01AB23_45CD67_89EF01。
给 CloudBridge 一个密钥
- 在导出数据集所在的项目里,打开 IAM 和管理 → 服务账号,新建一个,比如
cloudbridge。 - 在项目上授予它 BigQuery Job User(用于运行查询),在导出数据集上授予 BigQuery Data Viewer(用于读取那张表)。
- 打开这个服务账号,进入 密钥 → 添加密钥 → 创建新密钥 → JSON,把下载的文件放在 只有自己能访问的地方。
- 在 CloudBridge 里为 Google Cloud 添加账号,填入密钥文件的路径和账单导出表。
CloudBridge 只保存路径,不保存密钥:每次拉取时读取文件,所以轮换密钥只需替换文件。 gcloud auth application-default login 写出的凭据文件也可以代替它;勾选 Use this machine's credentials 时则读取 GOOGLE_APPLICATION_CREDENTIALS。
账单里有什么
| 列 | 来自 |
|---|---|
| 服务 | service.description——Compute Engine、Cloud Storage |
| 描述 | SKU——N2 Instance Core running in Americas |
| 项目 | project.id 和 project.name |
| 区域 | location.region |
| 日期 | 用量日期 |
| 类别 | 由 cost_type 得出 Usage、Tax 或 Adjustment;赠金记为 Credit |
一个月指的是发票月份,与 Google Cloud 发票一致。迟到计费的用量记在开票的那个月, 即使它实际发生在上个月。
查询会读取整张导出表。超出每月免费额度后按 BigQuery 按需价格计费;账单导出通常远小于 这个额度,但只要导出一直开着,它就会一直变大。资源洞察不扫描 Google Cloud 资源。
CloudBridge 具体调用了哪些接口,见云平台权限。
