Se você escolher o preço baseado no uso para seu produto, é preciso informar o uso do seu app à API Service Control.
Para ver uma apresentação do Service Control, consulte o Guia explicativo.
Antes de começar
- Configure o acesso à API Cloud Commerce Partner Procurement, conforme descrito em Integrar seu app.
- Recomendamos que você use o Portal do Produtor para criar uma conta de serviço para usar com o Service Control.
(Para preços baseados no uso) Informar o uso
Quando uma autorização é criada, você precisa chamar a API Partner Procurement para recuperar um usageReportingId
, usando a seguinte solicitação HTTP GET
:
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
A resposta contém informações sobre o direito, no seguinte 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": "..." }
Para informar o uso, primeiro você precisa fazer
uma chamada de API services.check
para verificar a configuração do serviço. Na resposta, se o objeto checkErrors[]
estiver vazio, faça uma chamada da API services.report
para enviar o relatório de uso.
O relatório de uso é uma API Service Control
Operation
.
A seguir, é apresentado um exemplo de um relatório de uso para example-messaging-service
que envia informações sobre o armazenamento que está sendo usado pelo 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" } }] }
onde:
operationId
é uma string exclusiva gerada pela instância de serviço. Use o mesmooperationId
para as operaçõescheck
ereport
.consumerId
é o mesmo queusageReportingId
do direito.startTime
eendTime
representam os horários de início e término do intervalo total para a operaçãoreport
. Na maioria dos casos, ostartTime
de uma operaçãoreport
precisa ter o mesmo valor deendTime
da operaçãoreport
anterior. Se o serviço de um cliente for desativado antes dostartTime
de uma operaçãoreport
, a chamada de APIservices.check
vai enviar um erro no objetocheckErrors[]
e o cliente não será cobrado pelo intervalo correspondente.MetricValueSet
contém um ou mais intervalos de tempo intermediários e os valores de métrica atualizados correspondentes. Você define as métricas do serviço ao escolher e enviar o modelo de preços. Você pode conferir e referenciar os identificadores das suas métricas na seção Integração técnica do Portal do Produtor.userLabels
são rótulos criados pelo usuário, definidos como strings de chave-valor que seguem requisitos de sintaxe específicos. Esses rótulos são encaminhados para as ferramentas de gerenciamento de custos do Cloud Billing para atribuição. Para recomendações relacionadas à rotulagem de uso, consulte Práticas recomendadas para rotulagem de uso.
Se a API services.check
retornar um ou mais dos erros a seguir, recomendamos que você interrompa a prestação do serviço para o cliente até que o erro seja resolvido:
SERVICE_NOT_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED