对于按使用量付费的 SaaS 产品,Google Cloud Marketplace 会将使用情况归因于由 usageReportingId
字段指定的单个 Google Cloud 项目。在某些情况下,SaaS 产品可能会在客户组织内广泛共享,并在许多客户项目中使用。为了支持更具体的费用归因,我们建议按用量付费的 SaaS 产品在其用量报告的操作中添加可选的 userLabels
字段。
如果您的服务已支持资源标签的概念,我们建议您在用量报告中转发这些标签。标签必须符合语法要求。
使用情况标签
Cloud Marketplace 预留了以下标签。您可以使用这些标签来标识您的服务平台中的用量的额外上下文。我们建议您在用量报告中默认添加这些标签。
标签键 | 标签值 | 说明 |
---|---|---|
cloudmarketplace.googleapis.com/resource_name | USER_SUPPLIED | 与用量指标关联的资源的名称。 |
cloudmarketplace.googleapis.com/container_name | USER_SUPPLIED | 资源容器的名称。 |
标签会转发到 Cloud Billing 费用管理工具,包括费用报告和结算导出。
使用标签示例
在本例中,假设贵组织提供名为 SaaS 存储解决方案的存储产品。
客户 Carl 为其 Google Cloud 项目 e-commerce-website
购买了您的存储产品,以托管其电子商务网站的 user_profiles_db
和 products_db
数据库:
user_profiles_db
包含有关访问 Carl 网站的用户的信息。products_db
包含 Carl 在其网站上销售的商品的相关信息。
如果您想向 Carl 提供其使用情况的详细费用明细,可以使用 userLabels
键值对分别报告每个数据库的使用费用。
例如,如需报告 Carl 的 products_db
存储用量所产生的费用,您可以发送以下报告,其中表明 Carl 的 products_db
存储费用为 100 个单位:
operation = {
'operationId': '<UUID>',
'operationName': 'db-total-storage',
'consumerId': 'project:carl_website',
'startTime': '<Timestamp>',
'endTime': '<Timestamp>',
'metricValues': [{
'int64Value': 100,
}],
'userLabels': {
'cloudmarketplace.googleapis.com/container_name': 'e-commerce-website',
'cloudmarketplace.googleapis.com/resource_name': 'products_db'
}
}
service.services().report(
serviceName=service_name, body={
'operations': [operation]
}).execute()
在此示例中,service_name
是 Carl 的 Google Cloud 项目的项目 ID。
如需有关使用 userLabels
的更详细示例,请参阅 SaaS Codelab。