Se scegli prezzi basati sull'utilizzo per il tuo prodotto, devi segnalare l'utilizzo della tua app all'API Service Control.
Per un'introduzione a Service Control, consulta la guida introduttiva.
Prima di iniziare
- Configura l'accesso all'API Cloud Commerce Partner Procurement, come descritto in Integra la tua app.
- Ti consigliamo di utilizzare Producer Portal per creare un service account da utilizzare con Service Control.
(Per i prezzi basati sull'utilizzo) Report sull'utilizzo
Quando viene creato un diritto, devi chiamare l'API Partner Procurement
per recuperare un usageReportingId utilizzando la seguente richiesta HTTP GET:
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
La risposta contiene informazioni sul diritto nel seguente 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": "..." }
Per segnalare l'utilizzo, devi prima effettuare una chiamata API services.check per controllare la configurazione del servizio. Nella risposta, se l'oggetto
checkErrors[] è vuoto, effettua una
chiamata API services.report
per inviare il report sull'utilizzo.
Il report sull'utilizzo è un'API Service Control
Operation.
Di seguito è riportato un esempio di report sull'utilizzo per example-messaging-service
che invia informazioni sullo spazio di archiviazione utilizzato dal 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" } }] }
dove:
operationIdè una stringa univoca generata dall'istanza di servizio. Utilizza lo stessooperationIdper le operazionicheckereport.consumerIdè uguale ausageReportingIddel diritto.startTimeeendTimerappresentano l'ora di inizio e l'ora di fine dell'intervallo totale per l'operazionereport. Nella maggior parte dei casi, ilstartTimedi un'operazionereportdeve avere lo stesso valore delendTimedell'operazionereportprecedente. Se il servizio di un cliente viene disattivato prima delstartTimedi un'operazionereport, la chiamata APIservices.checkinvia un errore nell'oggettocheckErrors[]e al cliente non viene addebitato l'intervallo corrispondente.MetricValueSetcontiene uno o più intervalli di tempo intermedi e i valori delle metriche aggiornati corrispondenti. Definisci le metriche del tuo servizio quando scegli e invii il modello di determinazione dei prezzi. Puoi visualizzare e fare riferimento agli identificatori delle tue metriche nella sezione Integrazione tecnica di Producer Portal.userLabelssono etichette create dall'utente, definite come coppie chiave-valore che seguono specifici requisiti di sintassi. Queste etichette vengono inoltrate agli strumenti di gestione dei costi di fatturazione Cloud per l'attribuzione. Per consigli relativi all'etichettatura dell'utilizzo, consulta Best practice per l'etichettatura dell'utilizzo.
Se l'API services.check restituisce uno o più dei seguenti errori, ti consigliamo di interrompere la fornitura del servizio al cliente finché l'errore non viene risolto:
SERVICE_NOT_ACTIVATEDBILLING_DISABLEDPROJECT_DELETED