Primeiros passos com unidades de locação

Nesta página, você encontra a configuração básica e o fluxo de trabalho das unidades de locação, parte da infraestrutura de serviços, incluindo:

Os exemplos usam chamadas diretas à API REST do Service Consumer Management.

Para informações gerais sobre unidades de locação, consulte Como criar e excluir unidades de locação.

Antes de começar

  • A API Service Consumer Management destina-se ao uso com serviços gerenciados e projetos de produtor de serviço. Você precisará ter um projeto do Google Cloud Platform e um serviço gerenciado (como um serviço criado usando o Cloud Endpoints) nesse projeto.
  • Para usar unidades de locação, a API Service Consumer Management precisa criar projetos de locatário na sua organização de produtores de serviço. Verifique se você tem cota suficiente para o número necessário de projetos de consumidor de serviço.
  • Cada projeto de consumidor de serviço criado em uma unidade de locação precisa estar também em uma pasta especificada por você. Por isso, você precisa de uma organização para usar unidades de locação.

Autenticação

As APIs do Cloud, como a API Service Consumer Management, só aceitam chamadas autenticadas. Se você ainda não tem uma, acesse Primeiros passos na autenticação e descubra como criar uma conta de serviço e conseguir uma chave JSON para autenticar as APIs do Cloud. Se você estiver usando uma biblioteca de cliente do Google, poderá configurar seu ambiente para que ele use as credenciais da sua conta de serviço por padrão. Para chamadas diretas à API REST, será preciso fornecer um token de acesso em cada cabeçalho, como no exemplo a seguir:

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" --header 'Content-Type: application/json' --data '{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy": {"policy_bindings":{"role":"roles/owner", "members":"user:user1@company.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}' -X POST "https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/consumers/12345678901/tenancyUnits/tu-hello:addProject"

Como criar uma unidade de locação

Depois de definir as permissões relevantes, quando um consumidor de serviço ativar seu serviço, você poderá criar uma unidade de locação que conterá o projeto de locatário desse consumidor de serviço. Uma unidade de locação é uma entidade leve que representa o relacionamento de um consumidor de serviço, normalmente um projeto do GCP que ativou suas APIs, e seu serviço gerenciado. Cada consumidor só pode ter uma unidade de locação ativa.

É possível criar uma unidade de locação da seguinte forma:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits

Aqui, 'projects/12345678901' é o número do projeto do consumidor do serviço e your-service.example.com é o nome do seu serviço.

A estrutura de dados retornada tem o nome da unidade de locação, com um código exclusivo gerado que pode ser usado para acessá-la. Neste exemplo, o nome gerado é /services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Como adicionar um projeto de locatário

Agora você pode adicionar um projeto para o usuário. Para adicionar um novo projeto de locatário à unidade de locação criada na etapa anterior, chame o seguinte método:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject

com os seguintes dados:

{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy":{"policy_bindings":{"role":"roles/owner", "members":"user:bob@example.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}

O valor tag é um identificador que você fornece para o projeto na unidade de locação: pode ser o que você quiser (aqui é tag1), como uma região, uma rede de consumidor ou apenas um código de string.

Essa chamada retorna uma operação de longa duração que pode ser consultada para verificar se a criação do projeto foi bem-sucedida.

Se for preciso aplicar uma configuração diferente, por exemplo, para adicionar novos serviços gerenciados, chame o método services.tenancyUnits.applyProjectConfig.

Como procurar suas unidades de locação

Encontrar uma unidade de locação para um consumidor de serviço

Para localizar uma unidade de locação para um consumidor de serviço específico, use o método ListTenancyUnits, especificando seu número de projeto de consumidor de serviço:

GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits

Pesquisar unidades de locação

Você pode usar o método SearchTenancyUnits para procurar unidades de locação definidas para seu serviço. Por exemplo, a seguinte consulta retornará todas as unidades que têm um projeto com a tag "tag1".

GET https://serviceconsumermanagement.sandbox.googleapis.com/v1/services/your-service.example.com:search?query=tenant_resources.tag=tag1

Como limpar unidades de locação

Quando um consumidor de serviço para de usar seu serviço, a exclusão da unidade de locação limpa recursos e ajuda a garantir que os dados do usuário sejam excluídos.

Remover projetos de locatário

Projetos de locatário precisam ser excluídos antes de excluir a unidade de locatário associada do consumidor do serviço. O método removeProject exclui o projeto e todos os recursos presentes nele:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject

com os seguintes dados:

{"tag":"tag1"}

Excluir uma unidade de locação

Depois que todos os projetos de locatário em uma unidade de locação forem removidos, ou se todos estiverem em estado DELETED, será possível excluir a unidade:

DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Service Infrastructure