Como integrar o back-end do aplicativo

Esta seção descreve as etapas para integrar o back-end do seu app com no Cloud Marketplace. Com essa integração, você pode gerenciar as configurações contas e direitos, que indicam que os usuários compraram seu produto no Cloud Marketplace. Se você escolheu um modelo de preços com base no uso, integre seu back-end também para informar o uso ao Google.

Um exemplo de integração de um app básico com o Cloud Marketplace e um do exemplo de código, consulte a codelab para integrar um serviço gerenciado.

Para ver o código de amostra usado no codelab, consulte o repositório do GitHub.

Antes de começar

Crie uma conta de serviço

Para integrar sua solução ao Google Cloud, você precisa criar uma conta de serviço no projeto que está usando para sua solução. Seu app usa isso para interagir com as APIs Cloud Marketplace Partner e para coletar informações sobre compras.

Use o Portal do Produtor para criar e vincular suas contas de serviço. Para conferir as etapas detalhadas de criação de uma conta de serviço, consulte Como criar e gerenciar contas de serviço.

Usar o Portal do Produtor para integrar o back-end do seu app

Para acessar todas as informações necessárias para integrar o back-end do seu app ao Cloud Marketplace de um local, como suas contas de serviço e plano identificadores de nível de serviço, use a seção Integração de faturamento do Producer Portal.

O link direto para o Portal do Produtor é:

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

Para acessar a seção Integração de faturamento:

  1. Na lista de produtos, clique no nome do seu produto.

  2. Na página Visão geral do seu produto, acesse Integração técnica. e clique em Integração de faturamento.

Como criar e vincular contas de serviço no Portal do Produtor

Use a seção Integração de faturamento do Portal do Produtor para criar e vincular as contas de serviço que você usa para interagir com as APIs de parceiros e para para coletar informações sobre compras.

O link direto para o Portal do Produtor é:

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

Nas etapas a seguir, use contas de serviço atuais ou crie novas contas de serviço. Se você criar uma nova conta de serviço, especifique o serviço da conta de serviço no campo Nome da conta de serviço e o campo no campo ID da conta de serviço e depois em Criar e vincular.

Para vincular suas contas de serviço:

  1. Na lista de produtos, clique no nome do seu produto.

  2. Na página Visão geral do seu produto, acesse Integração técnica. e clique em Integração de faturamento.

  3. Para integrar com a API Partner Procurement, em Vincular um serviço para chamar a API Procurement, clique em Adicionar conta de serviço. É possível inserir uma conta de serviço atual no campo ou criar uma nova conta de serviço.

  4. Para integrar com o Pub/Sub, acesse Vincular uma conta de serviço ao assinar o tópico do Pub/Sub, clique em Adicionar conta de serviço. É possível inserir uma conta de serviço atual no campo ou criar uma nova conta de serviço.

  5. Para integrar com a API Service Control, em Adicionar roles/servicemanagement.serviceController a uma conta de serviço, clique em Adicionar conta de serviço. É possível inserir uma conta de serviço atual no campo ou criar uma nova.

Tarefas da conta de usuário

Em alto nível, seu aplicativo precisa lidar com o seguinte cenário:

  1. Um usuário faz uma solicitação ou alteração no Cloud Marketplace, como assinar para seu produto.

  2. O Cloud Marketplace envia uma notificação ao seu app pelo Pub/Sub, que contém informações sobre a solicitação no eventType. Por exemplo, se um usuário alterar seus direitos, eventType será ENTITLEMENT_PLAN_CHANGED.

    Veja a lista completa de possíveis eventTypes.

  3. Para aprovar a solicitação, seu aplicativo envia uma solicitação HTTP POST à API Partner Procurement.

Nas seções a seguir, descrevemos os tipos de solicitações é podem ser feitas pelos usuários e o que aplicativo precisa fazer para lidar com elas.

Para as chamadas de API descritas nesta seção, use este ponto de extremidade:

https://cloudcommerceprocurement.googleapis.com/

Criar uma conta para um novo usuário

Quando um usuário compra seu produto pela primeira vez, o Cloud Marketplace cria uma recurso de conta que rastreia o relacionamento do usuário com você. Quando o recurso da conta é criado, você é notificado através do tópico Pub/Sub que foi criado para você. A mensagem do Pub/Sub está no seguinte formato:

{
  "eventId": "...",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "..."
  }
}

em que USER_ACCOUNT_ID é o ID da conta criado pelo O Cloud Marketplace e o YOUR_PARTNER_ID são um ID atribuído a você quando seu parceiro Engenheiro permite o acesso à API Partner Procurement.

Simultaneamente, o usuário é direcionado para sua página de inscrição, onde cria uma conta no seu sistema. Para ver mais informações sobre como criar a página de inscrição, consulte Como integrar o front-end do aplicativo.

Aprovar a conta de um usuário

Depois que o usuário se inscrever com sucesso, seu aplicativo precisará chamar a API Partner Procurement e indicar que a conta foi aprovada. As contas são criadas no estado ACCOUNT_ACTIVE, mas têm uma entrada PENDING no campo approvals, chamada signup. Isso indica que o usuário ainda não se inscreveu. Para aprovar a conta após a inscrição do usuário, use a seguinte solicitação HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID:approve {'approvalName': 'signup'}

Verificar o status da conta de um usuário

Para verificar o status de uma conta vinculada, use a seguinte solicitação HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID

A resposta está no seguinte formato:

{
  "name": "providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID",
  "provider": "acme-services",
  "state": "ACCOUNT_ACTIVE",
  "approvals": [{
    "name": "signup",
    "state": "APPROVED",
    "updateTime": "...",
  }],
  "updateTime": "...",
  "createTime": "..."
}

Para uma lista dos possíveis estados da conta, consulte a referência da API providers.accounts.

Gerenciar direitos

Quando os clientes escolhem um plano de preços para seu software, o Google cria uma direito, que indica que o cliente comprou seu produto no Cloud Marketplace. Nesta seção, mostramos como criar e gerenciar direitos para seus clientes usando a API Partner Procurement.

Para mais detalhes sobre o gerenciamento de direitos, acesse a documentação de referência.

Se você tiver ativado vários pedidos do mesmo produto, a API Partner Procurement poderá enviar vários eventos com o tipo de evento ENTITLEMENT_ACTIVE para o mesmo ACCOUNT_ID, cada um com um ENTITLEMENT_ID exclusivo para ofertas diferentes. Nesse caso, modifique a lógica de processamento de eventos do aplicativo para que ela responda ao ENTITLEMENT_ID em vez de ACCOUNT_ID ou PRODUCT_ID.

Também será necessário fazer alterações na integração de front-end para processar o novo objeto orders enviado no payload do JWT. Para mais informações, consulte Como integrar o front-end do seu app.

Para mais informações sobre como ativar vários pedidos do mesmo produto, consulte Ativar vários pedidos do mesmo produto.

Aprovar ou rejeitar um direito

Quando um cliente escolhe um plano de preços, o Cloud Marketplace cria um e envia a seguinte mensagem do Pub/Sub para seu aplicativo:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "...",
    "newOfferDuration": "P2Y3M",   // Contract duration for offer-based entitlements
  },
}

em que ENTITLEMENT_ID é um ID criado pelo Cloud Marketplace. Se a oferta tiver uma duração específica, essa duração será fornecida em anos e meses. Se a oferta tiver uma data de término especificada, em vez de uma duração, o campo indicando que a duração está vazia.

No seu sistema, atualize a conta do usuário para refletir que ele comprou um plano. Em seguida, para aprovar o direito, faça uma solicitação HTTP POST à API Partner Procurement e envie o ENTITLEMENT_ID que você está aprovando:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve

Para rejeitar um direito, use o método reject na sua solicitação HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject

Para justificar a rejeição do direito no corpo da solicitação, use o formato:

{
  "reason": "..."
}

Mudar um plano de direitos

Dependendo de como você configura seus planos de preços, seus clientes podem alterar o plano deles. Se um cliente selecionar um novo plano de preços, você receberá uma mensagem do Pub/Sub, no seguinte formato:

{
  "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
  },
}

Se a oferta tiver uma duração específica, essa duração será fornecida em anos e meses. Se a oferta tiver uma data de término especificada, em vez de uma duração, o campo indicando que a duração está vazia.

Para aprovar a alteração do plano, faça a seguinte solicitação HTTP POST à API Partner Procurement:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange

O corpo da solicitação precisa ter o plano que está sendo aprovado:

{
  "pendingPlanName": PLAN_NAME
}

Depois que a alteração for aprovada, você receberá outra mensagem do Pub/Sub quando a alteração entrar em vigor. Na mensagem, o campo eventType muda para ENTITLEMENT_PLAN_CHANGED. Para verificar o status de um plano, faça a seguinte solicitação HTTP GET à API Partner Procurement.

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

A resposta é semelhante à seguinte, com o campo state indicando se o novo plano está ativo ou se a alteração do plano ainda está pendente:

{
  "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",
  ...
}

Enviar uma mensagem de status para os usuários

Se o intervalo do momento em que o usuário escolhe um plano de preços até seu back-end aprovar um direito for de algumas horas ou mais, recomendamos que você envie uma mensagem de status aos usuários. Nessa mensagem, indique o andamento da aprovação e, se disponível, quando você espera que a aprovação seja concluída.

Para fornecer uma mensagem de status, faça a seguinte solicitação HTTP POST à API Procurement:

POST v1/providers/your-partner-id/entitlements/entitlement_id:updateUserMessage

No corpo da solicitação, forneça o texto da mensagem, semelhante ao seguinte exemplo:

{
  "message": "Approval expected in 2 days"
}

Cancelar um direito

Se um usuário decidir cancelar um direito dele, você receberá uma notificação do Pub/Sub. De maneira similar à alteração de um plano, o cancelamento real pode entrar em vigor no final do ciclo de faturamento real.

A notificação está no seguinte formato:

{
  "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": "..."
  },
}

Excluir um direito

Se um usuário fizer uma solicitação direta ao Suporte do Google ou sair da plataforma do Google, Os direitos são imediatamente cancelados e os direitos e as contas são excluídos após um período de carência de 60 dias. Para proteger a privacidade do usuário, exclua os dados dele dos seus servidores quando receber a notificação.

Quando os direitos são cancelados e a conta é excluída, você recebe notificações semelhantes às seguintes:

{
  "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": "...",
  },
}

Lista de tipos de eventos para tarefas da conta

A seguir, é apresentada uma lista dos eventTypes que seu aplicativo pode receber em mensagens do Pub/Sub:

eventTypeDescrição
ACCOUNT_CREATION_REQUESTEDObsoleto
ACCOUNT_ACTIVEIndica que a conta do cliente foi criada.
ACCOUNT_DELETEDIndica que a conta do cliente foi excluída dos sistemas do Google Cloud.
ENTITLEMENT_CREATION_REQUESTEDIndica que um cliente selecionou um dos seus planos de preços.
ENTITLEMENT_OFFER_ACCEPTEDIndica que uma oferta foi aceita por um cliente. Inclui o horário de início programado da oferta, se houver.
ENTITLEMENT_ACTIVEIndica que o plano escolhido de um cliente está ativo agora.
ENTITLEMENT_PLAN_CHANGE_REQUESTEDIndica que um cliente escolheu um novo plano.
ENTITLEMENT_PLAN_CHANGEDIndica que a alteração do plano de um cliente foi aprovada e as alterações entraram em vigor.
ENTITLEMENT_PLAN_CHANGE_CANCELLEDIndica o cancelamento da alteração do plano de um cliente devido à falta de aprovação ou ao retorno do cliente ao plano antigo.
ENTITLEMENT_PENDING_CANCELLATIONIndica o cancelamento do plano pelo cliente, pendente até o final do ciclo de faturamento.
ENTITLEMENT_CANCELLATION_REVERTEDIndica que o cancelamento pendente de um cliente foi revertido. Observe que os cancelamentos não podem ser revertidos após a finalização.
ENTITLEMENT_CANCELLEDIndica o cancelamento do plano de um cliente.
ENTITLEMENT_CANCELLINGIndica que o plano de um cliente está em processo de cancelamento.
ENTITLEMENT_RENEWEDIndica que o direito de um cliente foi renovado por outro período. Você não precisa fazer nada para concluir a renovação.
ENTITLEMENT_OFFER_ENDEDIndica que a oferta privada de um cliente terminou. Se o direito do cliente tiver sido cancelado, um evento ENTITLEMENT_CANCELLED separado será acionado. Se o direito do cliente ainda estiver ativo, o plano será revertido para o preço sem desconto.
ENTITLEMENT_DELETEDIndica que as informações sobre o plano de um cliente foram excluídas do Cloud Marketplace.

(Para preços baseados no uso) Informar o uso para o Google

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.

Recomendamos que você use o Portal do Produtor para Criar uma conta de serviço no Portal do Produtor para uso com o Service Control.

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 mesmo operationId para as operações check e report.

  • consumerId é o mesmo que usageReportingId do direito.

  • startTime e endTime representam os horários de início e término do intervalo total para a operação report. Na maioria dos casos, o startTime de uma operação report precisa ter o mesmo valor de endTime da operação report anterior.

    Se o serviço de um cliente for desativado antes do startTime de uma operação report, a chamada de API services.check enviará um erro no objeto checkErrors[] e o cliente não será cobrado pelo intervalo correspondente.

  • MetricValueSet contém um intervalo de tempo intermediário ou intermediário 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ê visualiza e faz referência aos identificadores das suas métricas no 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 ver as convenções de rotulagem recomendadas, 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

Práticas recomendadas para geração de relatórios de uso

Ao gerar relatórios de uso, por exemplo, operação do usuário ou utilização de recursos, lembre-se das seguintes informações para garantir que os clientes sejam cobrados corretamente.

Como informar o uso no momento da ocorrência

Os atrasos nos relatórios de uso afetam a experiência de gerenciamento de custos dos clientes e podem não ser refletidos nos relatórios dos parceiros. Os provedores de serviços precisam informar o uso em até uma hora depois do uso.

Caso você precise de mais tempo para informar o uso, entre em contato com o engenheiro de parceiros.

Como denunciar o uso após o cancelamento de um direito

Se você não tiver informado o uso depois que um direito for cancelado, ainda poderá fazer isso com um carimbo de data/hora que reflete o horário real em que o uso foi gerado. O carimbo de data/hora precisa ser anterior ao cancelamento do direito. Informe esse uso em até uma hora. Não informe nenhum uso novo após o direito terminar.

Como gerar relatórios de uso no final do mês

O período de geração de relatórios de uma hora se aplica ao prazo final do mês. Para garantir que o uso seja relatado na fatura do mês atual, informe o uso até 1h (horário do Pacífico) dos EUA e do Canadá (UTC-7 ou UTC-8).

Por exemplo, para uma fatura de setembro, informe o uso até 1º de outubro, 1h horário do Pacífico canadense e dos EUA (UTC-7 ou UTC-8).

Se o uso for relatado posteriormente no dia, ele poderá não ser incluído na fatura mensal atual.

Correção de ações dos clientes que impedem o uso de relatórios no momento da ocorrência

Se não for possível relatar o uso ou se o serviço ou o faturamento estiver desativado por um longo período, recomendamos que você forneça ao cliente um período de carência para restaurá-lo. Recomendamos que você não ultrapasse 30 dias. Durante esse período de carência, faça o seguinte:

  • Degradar o serviço fornecido. Por exemplo, mude o cliente para um nível gratuito ou comece a rejeitar chamadas.

  • Continue coletando o registro de uso enquanto o serviço estiver desativado. Recomendamos coletar o uso com o detalhamento de cobrança em, no máximo, uma janela de uma hora para que ela seja repetida após o serviço ser ativado.

Quando o serviço estiver ativado, informe o uso coletado enquanto o serviço foi desativado como uso real com o horário em que os dados foram coletados. Também é preciso retomar o relatório de uso normal.

Para aplicativos do Kubernetes, se os relatórios de uso falharem durante a inicialização, recomendamos que o aplicativo seja interrompido, para que os clientes recebam feedback imediato e resolvam o problema.

Práticas recomendadas para etiquetagem de uso

Para produtos SaaS baseados em uso, o uso é atribuído a um único projeto especificado pelo campo usageReportingId. Em algumas situações, um produto SaaS pode ser compartilhado amplamente na organização de um cliente e usada em muitos projetos do cliente. Para ativar o suporte para uma atribuição de custo mais específica, é recomendável usar Produtos SaaS incluem o campo userLabels opcional no relatório de uso operação.

Se o serviço é nativamente compatível com um conceito de rótulos de recursos, recomendamos que você os encaminhe nos relatórios de uso. Os rótulos precisam estar em conformidade com requisitos de sintaxe.

O Cloud Marketplace reserva os rótulos a seguir. É possível usar esses rótulos para identificar mais contexto para uso na plataforma de serviços nativos. Qa recomendamos que você inclua esses rótulos por padrão nos relatórios de uso.

Chave da etiquetaValor da etiquetaDescrição>
cloudmarketplace.googleapis.com/resource_name USER_SUPPLIED O nome do recurso associado a uma métrica de uso.
cloudmarketplace.googleapis.com/container_name USER_SUPPLIED O nome de um contêiner de recursos.

Os rótulos são encaminhados para o gerenciamento de custos do Cloud Billing ferramentas, como relatórios de custos e exportações de faturamento.

Exemplo de rotulagem de uso

Para este exemplo, imagine que sua organização oferece um produto de armazenamento chamado Soluções de armazenamento de SaaS.

Um cliente, Carlos, comprou sua oferta de armazenamento para Projeto e-commerce-website do Google Cloud para hospedar o arquivo user_profiles_db e products_db para o site de e-commerce:

  • user_profiles_db contém informações sobre os usuários que visitam o site de Carlos.
  • products_db contém informações sobre os produtos que Carlos vende na loja site.

Se quiser fornecer a Carlos um detalhamento dos custos do uso, poderá use o par de chave-valor userLabels para informar o custo de uso de cada do banco de dados separadamente.

Por exemplo, para informar o custo atribuído ao armazenamento de products_db de Carlos de uso, você pode enviar o relatório a seguir, que indica que os compromissos O armazenamento de products_db custa 100 unidades:

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()

Neste exemplo, service_name é o ID do projeto do Google Cloud de Carl. projeto.

Para um exemplo mais detalhado do uso de userLabels, consulte o Codelab de SaaS.

(Opcional) Integrar seus relatórios à nuvem privada virtual (VPC)

Se você quiser usar uma nuvem privada virtual (VPC) no ambiente do que o serviço do seu produto é executado, você precisa concluir as etapas a seguir para integrar os relatórios do Google Cloud Marketplace à VPC. Por padrão, o As VMs do Compute Engine na VPC só podem se comunicar internamente. Você precisa configurar uma das VMs para se comunicar externamente, de modo que o restante da as VMs da VPC podem usá-lo para gerar relatórios.

Antes de começar

Configurar o Acesso privado do Google

Para permitir que as máquinas virtuais (VMs) do Compute Engine do seu produto se comuniquem externamente para gerar relatórios, você precisa configurar Acesso privado do Google. Para mais informações sobre como configurar o Acesso privado do Google, consulte Como configurar o Acesso privado do Google.

  1. Ativar o Acesso privado do Google para seu ambiente de serviço.

  2. Configure o DNS para resolver solicitações para private.googleapis.com.

  3. Crie uma rota personalizada para as APIs do Google:

    • Em Nome, especifique route-google-apis-services.

    • Em Rede, selecione sua VPC.

    • Em Intervalo de IP de destino, especifique 199.36.153.8/30.

    • Em Prioridade, especifique 0.

    • Em Tags de instância, especifique google-apis-services.

    • Em Próximo salto, selecione Gateway de Internet padrão.

  4. Crie uma regra de firewall de VPC para permitir que seu produto se comunique com as APIs do Google:

    • Em Nome, especifique google-apis-services.

    • Em Descrição, especifique Allow egress traffic to Google APIs and services.

    • Ative a geração de registros de regras de firewall.

    • Em Rede, selecione sua VPC.

    • Em Direção do tráfego, selecione Saída.

    • Em Ação se houver correspondência, selecione Permitir.

    • Em Nome, especifique google-apis-services.

    • Em Destinos, selecione Specified target tags e, em seguida, Destino tags, especifique google-apis-services.

    • Em Filtro de destino, selecione IPv4 ranges. Intervalos IPv4 de destino, especifique 199.36.153.8/30.

    • Em Protocolos e portas, selecione Allow all.

  5. No console do Google Cloud, selecione a VM que você quer usar para gerar relatórios do uso do produto. Em Tags de rede, adicione google-apis-services e Clique em SALVAR.

  6. Em Interfaces de rede, localize a rede da VPC interface gráfica do usuário.

  7. Na coluna Sub-rede, clique no link da sub-rede. Da Sub-rede detalhes, clique em EDITAR e defina o Acesso privado do Google como Ativada.

  8. Clique em SALVAR.

(Opcional) Integrar a geração de relatórios ao VPC Service Controls

Se você quiser usar o VPC Service Controls no ambiente em que o serviço do seu produto é executado, você deve concluir o Siga estas etapas para integrar os relatórios do Google Cloud Marketplace com o VPC Service Controls:

  1. Configurar a implementação preferida do VPC Service Controls no serviço de nuvem. Para mais informações sobre como configurar o VPC Service Controls, acesse Configurar um perímetro de serviço usando o VPC Service Controls.

  2. Verifique se o serviço servicecontrol.googleapis.com na sua a implementação do VPC Service Controls não é restrita.