Si eliges la opción de precios basada en el uso para tu producto, debes informar del uso de tu aplicación a la API Service Control.
Para obtener una introducción a Service Control, consulta la guía de inicio.
Antes de empezar
- Configura el acceso a la API Cloud Commerce Partner Procurement, tal como se describe en Integrar tu aplicación.
- Te recomendamos que uses el Portal para productores para crear una cuenta de servicio que se pueda usar con Service Control.
(En el caso de los precios basados en el uso) Informar del uso
Cuando se crea un derecho, debes llamar a la API Partner Procurement para obtener un usageReportingId
. Para ello, usa la siguiente solicitud HTTP GET
:
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
La respuesta contiene información sobre el derecho en el siguiente formato:
{ "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID", "provider": "YOUR_PARTNER_ID", "account": "USER_ACCOUNT_ID", "product": "example-messaging-service", "plan": "pro", "usageReportingId": "USAGE_REPORTING_ID", "state": "ENTITLEMENT_ACTIVATION_REQUESTED", "updateTime": "...", "createTime": "..." }
Para informar del uso, primero debes hacer una llamada a la API services.check
para comprobar la configuración del servicio. En la respuesta, si el objeto checkErrors[]
está vacío, haz una llamada a la API services.report
para enviar el informe de uso.
El informe de uso es una API Service Control
Operation
.
A continuación, se muestra un ejemplo de informe de uso de example-messaging-service
que envía información sobre el almacenamiento que usa el cliente:
POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{ "operations": [{ "operationId": "1234-example-operation-id-4567", "operationName": "Hourly Usage Report", "consumerId": "USAGE_REPORTING_ID", "startTime": "2019-02-06T12:00:00Z", "endTime": "2019-02-06T13:00:00Z", "metricValueSets": [{ "metricName": "example-messaging-service/UsageInGiB", "metricValues": [{ "int64Value": "150" }] }], "userLabels": { "cloudmarketplace.googleapis.com/resource_name": "order_history_cache", "cloudmarketplace.googleapis.com/container_name": "storefront_prod", "environment": "prod", "region": "us-west2" } }] }
donde:
operationId
es una cadena única que genera la instancia de tu servicio. Usa el mismooperationId
para las operaciones decheck
yreport
.consumerId
es igual queusageReportingId
del derecho.startTime
yendTime
representan las horas de inicio y finalización del intervalo total de lareport
operación. En la mayoría de los casos, elstartTime
de una operaciónreport
debe tener el mismo valor que elendTime
de la operaciónreport
anterior. Si el servicio de un cliente se inhabilita antes de lastartTime
de una operaciónreport
, la llamada a la APIservices.check
envía un error en el objetocheckErrors[]
y no se cobra al cliente por el intervalo correspondiente.MetricValueSet
contiene uno o varios intervalos de tiempo intermedios y los valores de métrica actualizados correspondientes. Cuando eliges y envías tu modelo de precios, defines las métricas de tu servicio. Puede ver y consultar los identificadores de sus métricas en la sección Integración técnica de Producer Portal.userLabels
son etiquetas creadas por los usuarios, definidas como cadenas de pares clave-valor que siguen requisitos de sintaxis específicos. Estas etiquetas se reenvían a las herramientas de gestión de costes de Facturación de Cloud para la atribución. Para obtener recomendaciones relacionadas con el etiquetado de uso, consulta las prácticas recomendadas para el etiquetado de uso.
Si la API services.check
devuelve uno o varios de los siguientes errores, le recomendamos que deje de prestar su servicio al cliente hasta que se resuelva el error:
SERVICE_NOT_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED