Si vous choisissez une tarification basée sur l'utilisation pour votre produit, vous devez signaler l'utilisation de votre application à l'API Service Control.
Pour obtenir une présentation de Service Control, consultez le Guide de démarrage.
Avant de commencer
- Configurez l'accès à l'API Partner Procurement de Cloud Commerce comme décrit dans la section Intégrer votre application.
- Nous vous recommandons d'utiliser Producer Portal pour créer un compte de service à utiliser avec Service Control.
(Pour la tarification en fonction de l'utilisation) Rapport sur l'utilisation
Lorsqu'un droit est créé, vous devez appeler l'API Partner Procurement pour récupérer un usageReportingId
, à l'aide de la demande HTTP GET
suivante :
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
La réponse qui contient des informations sur le droit est au format suivant :
{ "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": "..." }
Pour signaler l'utilisation, vous devez d'abord effectuer un appel d'API services.check
afin de vérifier la configuration du service. Dans la réponse, si l'objet checkErrors[]
est vide, effectuez un appel d'API services.report
pour envoyer le rapport d'utilisation.
Le rapport d'utilisation est une API Service Control Operation
.
Voici un exemple de rapport d'utilisation pour example-messaging-service
qui envoie des informations sur le stockage utilisé par le client :
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" } }] }
où :
operationId
est une chaîne unique générée par votre instance de service. Utilisez les mêmesoperationId
pour vos opérationscheck
etreport
.consumerId
est identique au champusageReportingId
du droit d'accès.startTime
etendTime
représentent les heures de début et de fin de l'intervalle total pour l'opérationreport
. Dans la plupart des cas, lestartTime
d'une L'opérationreport
doit avoir la même valeur que l'endTime
de opérationreport
précédente. Si le service d'un client est désactivé avant lastartTime
d'une opérationreport
, l'appel d'APIservices.check
envoie une dans l'objetcheckErrors[]
, et le client n'est pas facturé l'intervalle correspondant.MetricValueSet
contient un ou plusieurs intervalles de temps intermédiaires et les valeurs de métriques mises à jour correspondantes. Vous définissez les métriques de votre service lorsque vous choisissez et envoyez votre modèle de tarification. Vous pouvez afficher et référencer les identifiants de vos métriques dans la section Intégration technique de Producer Portal.userLabels
sont des étiquettes créées par l'utilisateur, définies comme des chaînes clé-valeur suivre des exigences de syntaxe. Ces libellés sont transférés aux outils de gestion des coûts de Cloud Billing pour l'attribution. Pour des recommandations sur l'étiquetage d'utilisation, consultez Bonnes pratiques concernant les libellés d'utilisation
Si l'API services.check
renvoie une ou plusieurs des erreurs suivantes, nous vous recommandons de cesser de fournir votre service au client jusqu'à ce que l'erreur soit résolue :
SERVICE_NOT_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED