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 Integrare l'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 di 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 stessooperationId
per le operazionicheck
ereport
.consumerId
corrisponde ausageReportingId
del diritto.startTime
eendTime
rappresentano le ore di inizio e di fine dell'intervallo totale per l'operazionereport
. Nella maggior parte dei casi, ilstartTime
di un'operazionereport
deve avere lo stesso valore delendTime
dell'operazionereport
precedente. Se il servizio di un cliente viene disattivato prima delstartTime
di un'operazionereport
, la chiamata all'APIservices.check
invia un errore nell'oggettocheckErrors[]
e al cliente non viene addebitato alcun costo per l'intervallo corrispondente.MetricValueSet
contiene 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.userLabels
sono 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