我正在尝试获取 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 等维度分割整个组织的成本。
关于google-cloud-platform - 如何使用python获取GCP项目的计费成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76533388/