Pour obtenir une présentation de Service Control, consultez le Guide de démarrage.
Avant de commencer
- Configurez l'accès à l'API partenaire Procurement pour Cloud Commerce comme décrit à la page Intégrer votre application.
- Nous vous recommandons d'utiliser Producer Portal pour créer un compte de serviceque vous utiliserez avec Service Control.
Signaler l'utilisation (pour la tarification basée 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 requête 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 sur l'utilisation.
Le rapport sur l'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ù :
operationIdest une chaîne unique générée par votre instance de service. Utilisez le mêmeoperationIdpour vos opérationschecketreport.consumerIdest identique au champusageReportingIddu droit d'accès.startTimeetendTimereprésentent les heures de début et de fin de l'intervalle total pour l'opérationreport. Dans la plupart des cas, l'élémentstartTimed'une opérationreportdoit avoir la même valeur que le champendTimede l'opérationreportprécédente. Si le service d'un client est désactivé avant lestartTimed'une opérationreport, l'appel d'APIservices.checkenvoie une erreur dans l'objetcheckErrors[]et le client n'est pas facturé pour l'intervalle correspondant.MetricValueSetcontient un ou plusieurs intervalles de temps 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.userLabelssont des libellés créés par l'utilisateur, définis comme des chaînes clé-valeur qui respectent des exigences de syntaxe spécifiques. Ces libellés sont transférés aux outils de gestion des coûts de Cloud Billing pour l'attribution. Pour obtenir des recommandations concernant l'étiquetage de l'utilisation, consultez la section Bonnes pratiques pour l'étiquetage de l'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_ACTIVATEDBILLING_DISABLEDPROJECT_DELETED