google-cloud-platform - 如何使用python获取GCP项目的计费成本

标签 google-cloud-platform billing kubernetes-python-client

我正在尝试获取 GCP 项目的计费成本,但我无法看到我在代码中使用的客户端库的预期结果。

我想获得当月的报告或支出费用,但它只提供给我:

project_id: "my-project"
billing_account_name: "billingAccounts/XXXXX-XXXXX-XXXXX"
billing_enabled: true

我正在使用 billing_v1.GetProjectBillingInfoRequest() 类来获取结果。

from google.cloud import billing_v1
from google.oauth2 import service_account

info = {
    "client_email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2d4a4e5e485f5b444e484c4e4e6d757477005d5f4247484e5903444c40034a5e485f5b444e484c4e4e42584359034e4240" rel="noreferrer noopener nofollow">[email protected]</a>",
    "private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "private_key": "-----BEGIN PRIVATE KEY-----xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "token_uri": "https://oauth2.googleapis.com/token"
}
credentials = service_account.Credentials.from_service_account_info(info)

# Create a client
client = billing_v1.CloudBillingClient(credentials=credentials)
def sample_get_project_billing_info():
    # Initialize request argument(s)
    request = billing_v1.GetProjectBillingInfoRequest(
        name="projects/my-project"
    )

    # Make the request
    response = client.get_project_billing_info(request=request)

    # Handle the response
    print(response)
sample_get_project_billing_info()

output:
project_id: "my-project"
billing_account_name: "billingAccounts/XXXX-XXXX-XXXX"
billing_enabled: true

最佳答案

正如约翰所指出的,如果您想以编程方式获取成本,只有一种选择。它是通过计费导出(标准使用成本导出、详细成本导出)。您可以按照GCP的文档https://cloud.google.com/billing/docs/how-to/export-data-bigquery进行设置.

数据开始导出后,您可以使用 project-id="xyz"service-name="Dataflow" 等过滤器运行查询。

如果您在一个组织下有多个项目,但使用相同的结算帐户,则可以运行复杂的查询来确定每个项目或每项服务的成本,甚至单个 SKU 的成本。

您可以将此计费导出表与第三方服务集成,例如 Economize以可视化方式按项目、服务、SKU 等维度分割整个组织的成本。

GCP cost per project

关于google-cloud-platform - 如何使用python获取GCP项目的计费成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76533388/

相关文章:

java - 无法连接到 Google Cloud Bigtable 实例

google-cloud-platform - Google Cloud Scheduler - 不遵守 HTTP header

python - 通过 pod 访问 kubernetes python api

python - Kubernetes Python 客户端 : update deployment spec with affinity

kubernetes - 使用python客户端删除Kubernetes资源

python - 使用命名空间实现 Multi-Tenancy (Python 3+)

google-cloud-platform - 创建自定义 dataproc 图像时无法安装 python3 包

heroku - Heroku 的计费限制

android - 获取应用内结算用户帐户详细信息

android - "Error retrieving information from server RPC S-7 AEC-0"测试 Google 应用内结算时