Cette section décrit les étapes à suivre pour intégrer le backend de votre application Cloud Marketplace. Grâce à cette intégration, vous pouvez gérer comptes et les droits d'accès, qui indiquent que les utilisateurs ont acheté votre produit auprès de Cloud Marketplace. Si vous avez choisi un modèle de tarification basé sur l'utilisation, l'intégration du backend permet également de signaler l'utilisation à Google.
Pour un exemple d'intégration d'une application de base avec Cloud Marketplace et une procédure pas à pas de l'exemple de code, consultez l'atelier de programmation pour intégrer un service géré.
Pour obtenir l'exemple de code utilisé dans l'atelier de programmation, consultez le dépôt GitHub.
Avant de commencer
- Configurez l'accès à l'API Partner Procurement de Cloud Commerce comme décrit à la page Intégrer votre application : configuration.
- Si vous avez choisi un modèle de tarification basé sur l'utilisation, vérifiez si votre ingénieur partenaire a créé un service sur lequel vous pouvez rendre compte de l'utilisation. Ce service s'affiche dans le champ Domaine de service de la section Intégration de la facturation de Producer Portal.
Créer un compte de service
Pour intégrer votre produit à Google Cloud, vous devez créer un compte de service dans le projet que vous utilisez pour votre produit. Votre appli utilise cette de service pour interagir avec les API Cloud Marketplace Partner et obtenir des informations sur l'expérience utilisateur des achats.
Utilisez Producer Portal pour créer et associer vos comptes de service. Pour connaître la procédure détaillée de création d'un compte de service, consultez Créer et gérer des comptes de service
Utiliser Producer Portal pour intégrer le backend de votre application
Pour accéder à toutes les informations dont vous avez besoin pour intégrer le backend de votre application Cloud Marketplace à partir d'un emplacement unique, comme vos comptes de service et votre forfait vous pouvez utiliser la section Intégration de la facturation de Producer Portail.
Le lien direct vers Producer Portal est le suivant :
https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
Pour accéder à la section Intégration de la facturation:
Dans la liste des produits, cliquez sur le nom de votre produit.
Sur la page Présentation de votre produit, accédez à Intégration technique. puis cliquez sur Intégration de la facturation.
Créer et associer des comptes de service dans Producer Portal
Vous pouvez utiliser la section Intégration de la facturation de Producer Portal pour créer et associer les comptes de service que vous utilisez pour interagir avec les API Partner, obtenir des informations sur l'expérience utilisateur des achats.
Le lien direct vers Producer Portal est le suivant :
https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
Dans les étapes suivantes, vous pouvez utiliser des comptes de service existants ou en créer de nouveaux. Si vous créez un compte de service, spécifiez le nom du compte de service dans le champ Nom du compte de service, et le nom dans le champ ID de compte de service, puis cliquez sur Créer et associer.
Pour associer vos comptes de service, procédez comme suit :
Dans la liste des produits, cliquez sur le nom de votre produit.
Sur la page Présentation de votre produit, accédez à Intégration technique. puis cliquez sur Intégration de la facturation.
Pour intégrer l'API Partner Procurement, sous Associer un service pour appeler l'API Procurement, cliquez sur Ajouter un compte de service. Vous pouvez saisir un compte de service existant dans le champ ou créer un nouveau compte de service.
Pour procéder à l'intégration à Pub/Sub, sous Associer un compte de service à vous abonner au sujet Pub/Sub, cliquez sur Ajouter un compte de service. Vous pouvez saisir un compte de service existant dans le champ ou créer un nouveau compte de service.
Pour intégrer l'API Service Control, sous Ajouter
roles/servicemanagement.serviceController
à un compte de service, cliquez sur Ajouter un compte de service. Vous pouvez saisir un compte de service existant dans le champ ou créer un nouveau compte de service.
Tâches de compte utilisateur
En règle générale, votre application doit gérer le scénario suivant :
Un utilisateur effectue une requête ou une modification dans Cloud Marketplace (par exemple, une signature pour votre produit.
Cloud Marketplace envoie une notification à votre application via Pub/Sub, qui contient des informations sur la requête
eventType
. Par exemple, si un utilisateur change son droit, le champeventType
est défini surENTITLEMENT_PLAN_CHANGED
.Consultez la liste complète des
eventType
s possibles.Pour approuver la requête, votre application envoie une requête
HTTP POST
à l'API Partner Procurement.
Les sections suivantes décrivent les types de requêtes que les utilisateurs peuvent effectuer et ce que votre application doit faire pour gérer ces requêtes.
Pour les appels d'API décrits dans cette section, utilisez ce point de terminaison :
https://cloudcommerceprocurement.googleapis.com/
Créer un compte pour un nouvel utilisateur
Lorsqu'un utilisateur achète votre produit pour la première fois, Cloud Marketplace crée un ressource de compte qui suit la relation de l'utilisateur avec vous. Lorsque la ressource de compte est créée, vous recevez une notification via le sujet Pub/Sub qui a été créé pour vous. Le message Pub/Sub est au format suivant :
{ "eventId": "...", "providerId": "YOUR_PARTNER_ID", "account": { "id": "USER_ACCOUNT_ID", "updateTime": "..." } }
où USER_ACCOUNT_ID est l'ID de compte créé par Cloud Marketplace et YOUR_PARTNER_ID est un ID qui vous est attribué lorsque votre partenaire Engineer permet d'accéder à l'API Partner Procurement.
Simultanément, l'utilisateur est dirigé vers votre page d'inscription, où il crée un compte dans votre système. Pour en savoir plus sur la création de la page d'inscription, consultez la page Intégrer l'interface de votre application.
Approuver le compte d'un utilisateur
Une fois l'utilisateur inscrit, votre application doit appeler l'API Partner Procurement et indiquer que le compte a été approuvé.
Les comptes sont créés dans l'état ACCOUNT_ACTIVE
, mais une entrée PENDING
est présente dans le champ approvals
nommé signup
, ce qui indique que l'utilisateur ne s'est pas encore inscrit. Pour approuver le compte après l'inscription de l'utilisateur, utilisez la requête HTTP POST
suivante :
POST v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID:approve {'approvalName': 'signup'}
Vérifier l'état du compte d'un utilisateur
Pour vérifier l'état d'un compte associé, utilisez la demande HTTP GET
suivante :
GET v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID
La réponse est au format suivant :
{ "name": "providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID", "provider": "acme-services", "state": "ACCOUNT_ACTIVE", "approvals": [{ "name": "signup", "state": "APPROVED", "updateTime": "...", }], "updateTime": "...", "createTime": "..." }
Pour obtenir la liste des états de compte possibles, consultez la référence API providers.accounts
.
Gérer les droits d'accès
Lorsque les clients choisissent un forfait pour votre logiciel, Google crée un droit, qui indique que le client a acheté votre produit sur Cloud Marketplace. Cette section explique comment créer et gérer les droits de vos clients à l'aide de l'API Partner Procurement.
Pour en savoir plus sur la gestion des droits d'accès, consultez le documentation de référence.
Si vous avez activé plusieurs commandes pour le même produit, l'API Partner Procurement peut envoyer plusieurs événements avec le type d'événement ENTITLEMENT_ACTIVE
pour le même ACCOUNT_ID
, chacun avec un ENTITLEMENT_ID
unique pour différentes offres. Dans ce cas, assurez-vous de modifier la logique de gestion des événements de votre application afin qu'elle réponde à ENTITLEMENT_ID
au lieu de ACCOUNT_ID
ou PRODUCT_ID
.
Vous devez également apporter des modifications à votre intégration côté client pour gérer le nouvel objet orders
envoyé dans la charge utile JWT. Pour en savoir plus, consultez la section Intégrer l'interface de votre application.
Pour plus d'informations sur l'activation de la fonctionnalité pour plusieurs commandes d'un même produit, consultez l'article Activer plusieurs commandes du même produit.
Approuver ou refuser un droit d'accès
Lorsqu'un client choisit un forfait, Cloud Marketplace crée un et envoie le message Pub/Sub suivant à votre application:
{ "eventId": "...", "eventType": "ENTITLEMENT_CREATION_REQUESTED", "providerId": "YOUR_PARTNER_ID", "entitlement": { "id": "ENTITLEMENT_ID", "updateTime": "...", "newOfferDuration": "P2Y3M", // Contract duration for offer-based entitlements }, }
où ENTITLEMENT_ID est un ID créé par Cloud Marketplace. Si l'offre a une durée spécifiée, cette durée est indiquée en années et mois. Si une date de fin est spécifiée pour l'offre au lieu d'une durée, le champ indiquant la durée est vide.
Dans votre système, mettez à jour le compte de l'utilisateur pour indiquer qu'il a souscrit un forfait. Pour approuver le droit, envoyez une requête HTTP POST
à l'API Partner Procurement et envoyez l'ID ENTITLEMENT_ID que vous approuvez :
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve
Pour refuser un droit, utilisez plutôt la méthode reject
dans votre requête HTTP POST
:
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject
Pour indiquer le motif du refus du droit d'accès dans le corps de la requête, utilisez la méthode le format suivant:
{ "reason": "..." }
Modifier un forfait
En fonction de la configuration de vos forfaits, vos clients pourront peut-être modifier le leur. Si un client sélectionne un nouveau forfait, vous recevez un message Pub/Sub, au format suivant :
{ "eventId": "...", "eventType": "ENTITLEMENT_PLAN_CHANGE_REQUESTED", "providerId": "YOUR_PARTNER_ID", "entitlement": { "id": "ENTITLEMENT_ID", "newPlan": "ultimate", // New plan "updateTime": "...", "newOfferDuration": "P2Y3M", // Contract duration for the new offer, for offer-based entitlements }, }
Si l'offre a une durée spécifiée, cette durée est indiquée en années et mois. Si l'offre a une date de fin spécifiée, et non une durée, le champ indiquant que la durée est vide.
Pour approuver la modification du forfait, adressez la requête HTTP POST
suivante à l'API Partner Procurement :
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange
L'organisme demandeur doit avoir le plan en cours d'approbation :
{
"pendingPlanName": PLAN_NAME
}
Une fois la modification approuvée, vous recevez un autre message Pub/Sub lorsque la modification prend effet. Dans le message, le champ eventType
devient ENTITLEMENT_PLAN_CHANGED
. Pour vérifier l'état d'un plan, envoyez la requête HTTP GET
suivante à l'API Partner Procurement.
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
La réponse est semblable à la suivante, le champ state
indiquant si le nouveau forfait est actif ou si la modification du forfait est toujours en attente :
{ "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID", "provider": "YOUR_PARTNER_ID", "account": "USER_ACCOUNT_ID", "product": "example-server", "plan": "pro", "state": "ENTITLEMENT_PENDING_PLAN_CHANGE", "newPendingPlan": "ultimate", ... }
Annuler un droit d'accès
Si un utilisateur décide d'annuler son droit d'accès, vous recevez une notification Pub/Sub. Tout comme la modification d'un forfait, l'annulation peut prendre effet à la fin du cycle de facturation en cours.
La notification est au format suivant :
{ "eventId": "...", // If the entitlement is canceled at the end of the month, // eventType is ENTITLEMENT_PENDING_CANCELLATION "eventType": "ENTITLEMENT_CANCELLED", "providerId": "YOUR_PARTNER_ID", "entitlement": { "id": "ENTITLEMENT_ID", "updateTime": "..." }, }
Supprimer un droit
Si un utilisateur envoie une demande directe à l'assistance Google, ou s'il quitte la plate-forme Google, son les droits d'accès sont immédiatement annulés, et leurs droits d'accès ainsi que les comptes associés sont supprimés après un délai de grâce de 60 jours. Pour protéger la vie privée de l'utilisateur, vous devez supprimer ses données de vos serveurs dès que vous en êtes informé.
Une fois les droits d'accès et le compte supprimés, vous recevez des notifications semblables à celles-ci :
{ "eventId": "...", "eventType": "ENTITLEMENT_DELETED", "providerId": "YOUR_PARTNER_ID", "entitlement": { "id": "ENTITLEMENT_ID", "updateTime": "...", }, }
{ "eventId": "...", "eventType": "ACCOUNT_DELETED", "providerId": "YOUR_PARTNER_ID", "account": { "id": "USER_ACCOUNT_ID", "updateTime": "...", }, }
Liste des types d'événements pour les tâches de compte
Voici une liste des eventType
que votre application peut recevoir dans les messages Pub/Sub :
eventType | Description |
---|---|
ACCOUNT_CREATION_REQUESTED | Obsolète |
ACCOUNT_ACTIVE | Indique que le compte du client a été créé. |
ACCOUNT_DELETED | Indique que le compte du client a été supprimé des systèmes Google Cloud. |
ENTITLEMENT_CREATION_REQUESTED | Indique qu'un client a sélectionné l'un de vos forfaits. |
ENTITLEMENT_OFFER_ACCEPTED | Indique qu'une offre a été acceptée par un client. Inclut l'heure de début prévue de l'offre, le cas échéant. Cet événement est envoyé à la fois pour les offres privées et les offres standards (achats publics). |
ENTITLEMENT_ACTIVE | Indique que le forfait choisi par un client est maintenant actif. |
ENTITLEMENT_PLAN_CHANGE_REQUESTED | Indique qu'un client a choisi un nouveau forfait. |
ENTITLEMENT_PLAN_CHANGED | Indique que la modification du forfait d'un client est approuvée et que les modifications sont entrées en vigueur. |
ENTITLEMENT_PLAN_CHANGE_CANCELLED | Indique que le changement de forfait d'un client a été annulé, soit parce qu'il n'a pas été approuvé, soit parce le client est revenu à son ancien forfait. |
ENTITLEMENT_PENDING_CANCELLATION | Indique qu'un client a annulé son forfait et que l'annulation est en attente jusqu'à la fin du cycle de facturation. |
ENTITLEMENT_CANCELLATION_REVERTED | Indique que l'annulation en attente d'un client a été annulée. Notez que les annulations ne peuvent pas être annulées une fois qu'elles sont définitives. |
ENTITLEMENT_CANCELLED | Indique que le forfait d'un client a été annulé. |
ENTITLEMENT_CANCELLING | Indique que le forfait d'un client est en cours d'annulation. |
ENTITLEMENT_RENEWED | Indique que le droit d'accès d'un client a été renouvelé pour une autre période. Aucune action de votre part n'est requise de votre part.. |
ENTITLEMENT_OFFER_ENDED | Indique que l'offre privée d'un client est arrivée à expiration. Si le droit d'accès du client a été annulé, un événement ENTITLEMENT_CANCELLED distinct est déclenché. Si le droit d'accès du client est toujours actif, son forfait inclut un prix sans remise. |
ENTITLEMENT_DELETED | Indique que des informations sur le forfait d'un client ont été supprimées de Cloud Marketplace. |
Signaler l'utilisation à Google (pour la tarification basée sur l'utilisation)
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.
Nous vous recommandons d'utiliser Producer Portal pour y créer un compte de service que vous utiliserez avec Service Control.
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. Vous devez utiliser le même identifiantoperationId
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, l'élémentstartTime
d'une opérationreport
doit avoir la même valeur que le champendTime
de l'opérationreport
précédente.Si le service d'un client est désactivé avant le
startTime
d'une opérationreport
, l'appel d'APIservices.check
envoie une erreur dans l'objetcheckErrors[]
et le client n'est pas facturé pour l'intervalle correspondant.MetricValueSet
contient 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 affichez et référencez les identifiants de vos métriques dans Section Intégration technique de Producer Portal
userLabels
sont 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 connaître les conventions d'étiquetage recommandées, 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_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED
Bonnes pratiques pour les rapports d'utilisation
Lorsque vous créez un rapport d'utilisation, par exemple concernant les opérations ou l'utilisation des ressources, tenez compte des informations suivantes pour vous assurer que vos clients sont facturés correctement.
Signaler l'utilisation au moment de l'occurrence
Les retards dans la création des rapports d'utilisation nuisent à l'expérience de gestion des coûts de vos clients et peuvent ne pas être reflétés dans les rapports des partenaires. Les fournisseurs de services doivent signaler l'utilisation dans un délai d'une heure après l'utilisation générée.
Si vous avez besoin de plus de temps pour signaler l'utilisation, contactez votre ingénieur partenaire.
Signaler l'utilisation après une annulation de droit d'accès
Si vous avez annulé l'utilisation après signalement d'un droit, vous pouvez toujours le signaler avec un horodatage qui reflète l'heure à laquelle l'utilisation a été générée. L'horodatage doit être antérieur à l'annulation du droit. Signalez cette utilisation dans un délai d'une heure. Vous ne devez pas signaler d'utilisation en tant que nouvelle utilisation après la fin du droit.
Signaler l'utilisation à la fin du mois
La période de référence d'une heure s'applique à la date limite de fin de mois. Pour vous assurer que l'utilisation est indiquée sur la facture du mois en cours, indiquez l'utilisation au plus tard à 1:00, heure du Pacifique des États-Unis et du Canada (UTC-7 ou UTC-8), le lendemain.
Par exemple, pour une facture de septembre, indiquez l'utilisation avant le 1er octobre, 1:00, heure du Pacifique des États-Unis et du Canada (UTC-7 ou UTC-8).
Si l'utilisation est signalée plus tard dans la journée, elle risque de ne pas être incluse dans la facture du mois en cours.
Correction des actions client qui empêchent de signaler l'utilisation au moment de l'occurrence
Si vous ne pouvez pas signaler l'utilisation, ou si le service ou la facturation est désactivé pendant une période prolongée, nous vous recommandons d'accorder au client un délai de grâce pour restaurer le service. Nous vous recommandons de ne pas dépasser 30 jours. Au cours de ce délai de grâce, envisagez d'effectuer les opérations suivantes :
Dégrader le service fourni. Par exemple, passez le client à une version gratuite ou commencez à rejeter les appels.
Continuez à collecter le journal d'utilisation lorsque le service est désactivé. Nous vous recommandons de collecter l'utilisation avec la répartition des frais au plus tard par une fenêtre d'une heure, afin de pouvoir la relire après l'activation du service.
Lorsque le service est activé, vous devez signaler l'utilisation collectée lors de la désactivation du service en tant qu'utilisation réelle avec l'heure à laquelle les données ont été collectées. Vous devez également reprendre vos rapports d'utilisation habituels.
Pour les applications Kubernetes, si les rapports d'utilisation échouent au démarrage de l'application, nous recommandons que votre application s'arrête d'elle-même, afin que vos clients obtiennent des commentaires immédiats et puissent résoudre le problème.
Bonnes pratiques pour l'étiquetage de l'utilisation
Pour les produits SaaS basés sur l'utilisation, l'utilisation est attribuée à un seul projet
spécifié par le champ usageReportingId
.
Dans certains cas, un produit SaaS peut être partagé à grande échelle
au sein de l'organisation d'un client et utilisées
dans de nombreux projets clients. À
activer la prise en charge de l'attribution des coûts plus spécifique, nous vous recommandons d'utiliser des
Les produits SaaS incluent le champ facultatif userLabels
dans leur rapport d'utilisation
opération.
Si votre service est nativement compatible avec un concept d'étiquettes de ressource, nous vous recommandons de transférer ces étiquettes dans vos rapports d'utilisation. Les étiquettes doivent respecter les exigences de syntaxe.
Cloud Marketplace réserve les libellés suivants. Vous pouvez utiliser ces étiquettes pour identifier du contexte supplémentaire à utiliser sur votre plate-forme de services native. Mer nous vous recommandons d'inclure ces libellés par défaut dans vos rapports d'utilisation.
Clé du libellé | Valeur du libellé | Description > |
---|---|---|
cloudmarketplace.googleapis.com/resource_name | USER_SUPPLIED | Nom de la ressource associée à une métrique d'utilisation. |
cloudmarketplace.googleapis.com/container_name | USER_SUPPLIED | Nom d'un conteneur de ressources. |
Les libellés sont transférés vers les outils de gestion des coûts de Cloud Billing, y compris les rapports de coût et les exportations de la facturation.
Exemple d'étiquetage d'utilisation
Pour cet exemple, imaginez que votre organisation propose un produit de stockage appelé Solutions de stockage SaaS.
Un client, Carl, a acheté votre offre de stockage pour ses
Le projet Google Cloud e-commerce-website
, pour héberger le user_profiles_db
et products_db
pour leur site Web d'e-commerce:
user_profiles_db
contient des informations sur les utilisateurs qui visitent le site de Carl.products_db
contient des informations sur les produits que Carl vend sur son sur votre site.
Si vous souhaitez fournir à Carl une répartition détaillée des coûts liés à son utilisation, vous pouvez
utilisez la paire clé-valeur userLabels
pour indiquer le coût d'utilisation de chaque
séparément.
Par exemple, pour indiquer le coût attribué à l'utilisation de l'espace de stockage products_db
de Carl, vous pouvez envoyer le rapport suivant, qui indique que l'espace de stockage products_db
de Carl lui coûte 100 unités :
operation = {
'operationId': '<UUID>',
'operationName': 'db-total-storage',
'consumerId': 'project:carl_website',
'startTime': '<Timestamp>',
'endTime': '<Timestamp>',
'metricValues': [{
'int64Value': 100,
}],
'userLabels': {
'cloudmarketplace.googleapis.com/container_name': 'e-commerce-website',
'cloudmarketplace.googleapis.com/resource_name': 'products_db'
}
}
service.services().report(
serviceName=service_name, body={
'operations': [operation]
}).execute()
Dans cet exemple, service_name
correspond à l'ID du projet Google Cloud de Carl
projet.
Pour obtenir un exemple plus détaillé d'utilisation de userLabels
, vous pouvez consulter
Atelier de programmation SaaS.
(Facultatif) Intégrer vos rapports au cloud privé virtuel (VPC)
Si vous souhaitez utiliser un cloud privé virtuel (VPC) dans l'environnement exécuté par le service de votre produit, vous devez effectuer les étapes suivantes pour intégrer les rapports Google Cloud Marketplace au VPC. Par défaut, les VM Compute Engine de votre VPC ne peuvent communiquer qu'en interne. Vous devez configurer l'une des VM pour qu'elle communique en externe afin que les autres VM de votre VPC puissent l'utiliser pour créer des rapports.
Avant de commencer
Configurez la mise en œuvre de votre choix pour le VPC dans votre service. environnement. Pour savoir comment configurer un VPC, consultez la page Créer et modifier des réseaux de cloud privé virtuel (VPC)
Assurez-vous de disposer du rôle IAM (Identity and Access Management) Administrateur de réseaux Compute (
roles/compute.NetworkAdmin
) pour votre projet Google Cloud.
Configurer l'accès privé à Google
Pour permettre aux machines virtuelles (VM) Compute Engine de votre produit de communiquer en externe à des fins de création de rapports, vous devez configurer Accès privé à Google. Pour en savoir plus sur la configuration de l'accès privé à Google, consultez la section Configurer l'accès privé à Google.
Activer l'accès privé à Google pour votre environnement de service.
Configurez le DNS pour de résoudre les requêtes à
private.googleapis.com
.Créez une route personnalisée pour les API Google:
Dans le champ Nom, spécifiez
route-google-apis-services
.Dans Réseau, sélectionnez votre VPC.
Pour Plage d'adresses IP de destination, spécifiez
199.36.153.8/30
.Pour Priorité, spécifiez
0
.Dans le champ Tags d'instance, spécifiez
google-apis-services
.Pour Saut suivant, sélectionnez Passerelle Internet par défaut.
Créez une règle de pare-feu VPC pour permettre à votre produit de communiquer avec les API Google :
Dans le champ Nom, spécifiez
google-apis-services
.Pour le champ Description, spécifiez
Allow egress traffic to Google APIs and services
.Activez la journalisation des règles de pare-feu.
Dans le champ Réseau, sélectionnez votre VPC.
Pour le champ Sens du trafic, sélectionnez Sortie.
Pour l'option Action en cas de correspondance, sélectionnez Autoriser.
Dans le champ Nom, spécifiez
google-apis-services
.Dans le champ Cibles, sélectionnez
Specified target tags
, puis dans Target (Cible) : , spécifiezgoogle-apis-services
.Pour Filtre de destination, sélectionnez
IPv4 ranges
, et pour les Plages IPv4 de destination, spécifiez199.36.153.8/30
.Dans Protocoles et ports, sélectionnez
Allow all
.
Dans la console Google Cloud, sélectionnez la VM que vous souhaitez utiliser pour enregistrer l'utilisation de votre produit. Sous Tags réseau, ajoutez
google-apis-services
, puis cliquez sur ENREGISTRER.Sous Interfaces réseau, localisez le réseau de votre VPC de commande.
Dans la colonne Sous-réseau, cliquez sur le lien de sous-réseau. À partir du sous-réseau d'informations, cliquez sur MODIFIER, puis définissez l'option Accès privé à Google sur Activé :
Cliquez sur ENREGISTRER.
(Facultatif) Intégrer vos rapports avec VPC Service Controls
Si vous souhaitez utiliser VPC Service Controls dans le environnement dans lequel le service s'exécute, vous devez effectuer la Pour intégrer la création de rapports Google Cloud Marketplace à VPC Service Controls, procédez comme suit:
Configurer l'implémentation VPC Service Controls de votre choix dans votre service environnement. Pour en savoir plus sur la configuration de VPC Service Controls, consultez la page Configurer un périmètre de service à l'aide de VPC Service Controls.
Assurez-vous que le service
servicecontrol.googleapis.com
de votre implémentation de VPC Service Controls n'est pas limité.