Gerir unidades de arrendamento

Esta página mostra como gerir unidades de arrendamento para o seu serviço. Uma unidade de arrendamento é um recurso simples que representa a relação entre um consumidor de serviços e um serviço gerido. Cada consumidor de serviços só pode ter uma unidade de arrendamento ativa para um serviço gerido. Esta é uma funcionalidade fornecida pela infraestrutura de serviços.

O nome do recurso de uma unidade de arrendamento tem o seguinte formato:

services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}

O ID de uma unidade de arrendamento é gerado automaticamente quando a cria. Também pode fornecer um ID quando chama o método services.tenancyUnits.create. Se fornecer um ID, este tem de ser globalmente único no âmbito do seu serviço gerido em todos os consumidores de serviços.

Os exemplos nesta página usam chamadas diretas à API REST Service Consumer Management. Para utilização em produção, recomendamos que use bibliotecas de cliente fornecidas pela Google para uma melhor usabilidade e fiabilidade.

Antes de começar

  • A API Service Consumer Management destina-se a ser usada com serviços geridos e projetos de produtor de serviços. Já tem de ter um projeto Google Cloud e um serviço gerido (como um serviço criado com os Cloud Endpoints) nesse projeto.
  • Para usar unidades de arrendamento, a API Service Consumer Management tem de criar projetos de inquilinos na sua organização de produtor de serviços. Certifique-se de que tem quota suficiente para o número necessário de projetos de inquilinos para os consumidores do seu serviço.
  • Para criar e eliminar unidades de arrendamento, siga as instruções de configuração inicial no artigo Introdução à API Service Consumer Management.
  • Cada projeto de inquilino criado numa unidade de arrendamento também tem de estar numa pasta que especifica como parte da configuração do projeto de inquilino. Por este motivo, precisa de uma organização para usar as unidades de posse.

Autenticação

Select the tabs for how you plan to access the API:

gcloud

Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

gcloud init

Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

Bibliotecas cliente

Para usar bibliotecas de cliente num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais padrão da aplicação com as suas credenciais de utilizador.

    Instale a CLI Google Cloud.

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

Para mais informações, consulte Configure o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.

REST

Para usar a API REST num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

    Instale a CLI Google Cloud.

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Para informações sobre como configurar a autenticação para um ambiente de produção, consulte Set up Application Default Credentials for code running on Google Cloud na Google Cloud documentação de autenticação.

Criar uma unidade de arrendamento

Normalmente, as unidades de posse e os projetos de inquilinos nas mesmas são criados quando são criados recursos no seu próprio serviço que dependem de recursos adicionais do Google Cloud a serem aprovisionados para os consumidores.

Cria uma unidade de arrendamento através do método services.tenancyUnits.create:

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

Aqui, "projects/12345678901" representa o consumidor de serviços e service.example.com é o nome do seu serviço.

A estrutura de dados devolvida tem o nome da unidade de arrendamento, com um ID exclusivo gerado que pode ser usado para aceder à mesma. Neste exemplo, o nome gerado é services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Adicionar um projeto de inquilino

Já pode adicionar um projeto para o utilizador. Para adicionar um novo projeto de inquilino à unidade de arrendamento criada no passo anterior, use o método services.tenancyUnits.addProject:

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 fornece para o projeto na unidade de locação: pode ser qualquer coisa que quiser (aqui é tag1), como uma região, uma rede de consumidores ou apenas um ID de string.

Esta chamada devolve uma operação de execução prolongada que pode consultar para saber se a criação do projeto foi bem-sucedida.

Se precisar de aplicar uma configuração diferente, por exemplo, para adicionar novos serviços geridos, pode chamar o método services.tenancyUnits.applyProjectConfig.

Pesquisar as suas unidades de arrendamento

Encontre uma unidade de arrendamento para um consumidor de serviços

Para encontrar uma unidade de arrendamento para um consumidor de serviços específico, use o método services.tenancyUnits.list, especificando o número do projeto do consumidor de serviços:

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

Pesquise unidades de arrendamento

Pode usar o método services.search para pesquisar unidades de arrendamento definidas para o seu serviço. Por exemplo, a seguinte consulta devolve todas as unidades que contêm um projeto com a etiqueta "tag1":

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

Limpeza de unidades de arrendamento

Quando um consumidor de serviços deixa de usar o seu serviço, tem de remover a respetiva unidade de inquilino para libertar recursos e garantir que os dados do utilizador são eliminados.

Remova projetos de inquilinos

Tem de eliminar todos os projetos de inquilino antes de eliminar a unidade de arrendamento correspondente. Deve usar o método services.tenancyUnits.removeProject para eliminar um projeto de inquilino e todos os recursos no mesmo:

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

Elimine uma unidade de arrendamento

Depois de eliminar todos os projetos de inquilino numa unidade de arrendamento ou quando todos se encontram no estado DELETED, pode eliminar a unidade de arrendamento através do método services.tenancyUnits.delete:

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