在一个 GCP 项目上为多个 Google Cloud API 用户计费

问题描述

我有一个 GCP 项目和多个使用谷歌云 API(例如云文本到语音、云语音到文本等)的用户/服务帐户。在每个 API 的指标概览中,可以看到 API 被谁调用的频率,但对于计费概览,无法确定哪个用户/服务帐户导致了特定的成本金额。所以我的问题是:是否可以在实际计费成本中识别不同的用户/服务帐户

通常,人们会使用标签来区分不同的用户,但不幸的是,这些 API 不支持标签(请参阅当前支持的服务列表:https://cloud.google.com/resource-manager/docs/creating-managing-labels#label_support

此外,每个用户/服务帐户都有一个单独的 Cloud run 实例与之连接,该实例运行一个服务器,侦听传入请求并将它们转发到相应的 API。这种方法会以某种方式促进一个 GCP 项目中从用户到成本的映射吗?

解决方法

指标和计费是两个不同的东西。

  • Google 提供指标来跟踪和了解您的服务在您的项目中的使用情况
  • 计费是在项目级别进行的,无论用户/服务帐户是什么,您都支付了费用,Google 不关心您将如何向用户重新收取服务费用。

因此,这里的解决方案是使用指标获取数据,然后根据 API 使用情况平均分配成本。

同样,Cloud Run 标签将帮助您在 BigQuery 帐单导出中获得详细信息,但 Google 会向您收取所有服务费用。

最终,如果服务/客户是独立的,您可以想象为每个客户创建一个项目,因此每个项目有 1 个免费层(如果适用),最重要的是每个项目有 1 个账单,因此每个客户!