Se scegli i 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 Eseguire l'integrazione dell'app.
- Ti consigliamo di utilizzare il Producer Portal per creare un account di servizio da utilizzare con Service Control.
(Per i prezzi basati sull'utilizzo) Segnala l'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 all'API
services.check per controllare la configurazione del servizio. Nella risposta, se l'oggetto checkErrors[] è vuoto, effettua una chiamata all'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 stesso- operationIdper le operazioni- checke- report.
- consumerIdcorrisponde a- usageReportingIddel diritto.
- startTimee- endTimerappresentano le ore di inizio e di fine dell'intervallo totale per l'operazione- report. Nella maggior parte dei casi, il- startTimedi un'operazione- reportdeve avere lo stesso valore del- endTimedell'operazione- reportprecedente. Se il servizio di un cliente viene disattivato prima del- startTimedi un'operazione- report, la chiamata all'API- services.checkinvia un errore nell'oggetto- checkErrors[]e al cliente non viene addebitato alcun costo per l'intervallo corrispondente.
- MetricValueSetcontiene uno o più intervalli di tempo intermedi e i valori aggiornati corrispondenti delle metriche. Devi definire le metriche del servizio quando scegli e invii il modello di determinazione dei prezzi. Puoi visualizzare e fare riferimento agli identificatori delle metriche nella sezione Integrazione tecnica di Producer Portal.
- userLabelssono etichette create dall'utente, definite come stringhe 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_ACTIVATED
- BILLING_DISABLED
- PROJECT_DELETED