Se escolher preços baseados na utilização para o seu produto, tem de comunicar a utilização da sua app à API Service Control.
Para uma introdução ao controlo de serviços, consulte o guia de introdução.
Antes de começar
- Configure o acesso à API Cloud Commerce Partner Procurement, conforme descrito em Integre a sua app.
- Recomendamos que use o Producer Portal para criar uma conta de serviço para utilização com o Service Control.
(Para preços baseados na utilização) Informe a utilização
Quando é criada uma autorização, tem de chamar a API Partner Procurement
para obter um usageReportingId
, através do seguinte pedido HTTP GET
:
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
A resposta contém informações sobre a concessão 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 comunicar a utilização, primeiro tem de fazer uma chamada API para verificar a configuração do serviço.services.check
Na resposta, se o objeto checkErrors[]
estiver vazio, faça uma chamada API services.report
para enviar o relatório de utilização.
O relatório de utilização é uma API Service Control
Operation
.
Segue-se um exemplo de um relatório de utilização para example-messaging-service
que envia informações sobre o armazenamento 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" } }] }
where:
operationId
é uma string única gerada pela instância do seu serviço. Use o mesmooperationId
para as operaçõescheck
ereport
.consumerId
é igual ausageReportingId
da concessão.startTime
eendTime
representam as horas de início e de fim do intervalo total para a operaçãoreport
. Na maioria dos casos, ostartTime
de uma operaçãoreport
deve ter o mesmo valor que oendTime
da operaçãoreport
anterior. Se o serviço de um cliente for desativado antes dastartTime
de umareport
Operation, a chamada da APIservices.check
envia um erro no objetocheckErrors[]
e o cliente não paga o intervalo correspondente.MetricValueSet
contém um ou mais intervalos de tempo intermédios e os valores das métricas atualizados correspondentes. Define as métricas do seu serviço quando escolhe e envia o seu modelo de preços. Pode ver e consultar os identificadores das suas métricas na secção Integração técnica do Producer Portal.userLabels
são etiquetas criadas pelo utilizador, definidas como strings de chave-valor que seguem requisitos de sintaxe específicos. Estas etiquetas são encaminhadas para as ferramentas de gestão de custos da Faturação do Google Cloud para atribuição. Para ver recomendações relacionadas com a etiquetagem de utilização, consulte o artigo Práticas recomendadas para a etiquetagem de utilização.
Se a API services.check
devolver um ou mais dos seguintes erros, recomendamos que deixe de fornecer o seu serviço ao cliente até que o erro seja resolvido:
SERVICE_NOT_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED