Implantar uma instância de serviço com o App Lifecycle Manager
Saiba como implantar uma instância de serviço usando o App Lifecycle Manager. Neste exemplo de início rápido, a instância de serviço é uma VM.
Antes de começar
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the App Lifecycle Manager, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the App Lifecycle Manager, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Conceder permissões à conta de serviço do executor de SaaS
O App Lifecycle Manager usa mais de uma conta de serviço. Você criou uma conta de serviço na seção anterior e, ao ativar a API App Lifecycle Manager, o App Lifecycle Manager cria outra conta de serviço.
A conta de serviço criada pelo App Lifecycle Manager é chamada de
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com,
em que PROJECT-NUMBER é o número do seu projeto.
Conceda as permissões necessárias a essa conta de serviço fazendo o seguinte:
Abra a página App Lifecycle Manager > Visão geral > Começar.
No banner com a mensagem As permissões necessárias para a conta do App Lifecycle Manager não foram concedidas, clique em Conceder permissões.
Definir a instância de serviço usando uma configuração do Terraform
É necessário usar uma configuração do Terraform para definir a infraestrutura a ser implantada para a instância de serviço. Neste guia de início rápido, você está implantando uma VM.
Para criar uma configuração do Terraform que defina uma VM:
Crie um diretório chamado
terraform-vmna sua máquina local.Dentro de
terraform-vm, crie os quatro arquivos do Terraform a seguir:Um arquivo chamado
versions.tfcom o seguinte conteúdo:terraform { required_version = "1.5.7" required_providers { google = { source = "hashicorp/google" version = "~> 4.0" } } }Um arquivo chamado
outputs.tfcom o seguinte conteúdo:output "instance_name" { description = "Name of the instance" value = google_compute_instance.vm_instance.name } output "instance_external_ip" { description = "External IP of the instance" value = google_compute_instance.vm_instance.network_interface[0].access_config[0].nat_ip } output "instance_self_link" { description = "Self-link of the instance" value = google_compute_instance.vm_instance.self_link }Um arquivo chamado
variables.tfcom o seguinte conteúdo:variable "region" { description = "The Google Cloud region" type = string default = "us-central1" } variable "zone" { description = "The Google Cloud zone" type = string default = "us-central1-a" } variable "instance_name" { description = "Name for the Compute Engine instance" type = string default = "saas-runtime-vm-instance" } variable "machine_type" { description = "Machine type for the Compute Engine instance" type = string default = "e2-medium" } variable "disk_size" { description = "Boot disk size in GB" type = number default = 10 } variable "actuation_sa" { description = "The email of the Actuation Service Account" type = string } variable "tenant_project_id" { description = "The project ID of the tenant project" type = string } variable "tenant_project_number" { description = "The project number of the tenant project" type = number }Um arquivo chamado
main.tfcom o seguinte conteúdo:resource "google_compute_instance" "vm_instance" { project = var.tenant_project_id name = var.instance_name machine_type = var.machine_type zone = var.zone boot_disk { initialize_params { image = "debian-cloud/debian-11" size = var.disk_size } } network_interface { network = "default" access_config { # Ephemeral public IP - empty block is okay here } } tags = ["allow-ssh"] }
Para criar um arquivo zip contendo esses quatro arquivos de configuração do Terraform, navegue até o diretório
terraform-vmno terminal e execute o seguinte comando:zip terraform-files.zip main.tf outputs.tf variables.tf versions.tfAgora você tem um arquivo zip chamado
terraform-files.zip, que contém todos os quatro arquivos de configuração do Terraform.
Criar um repositório no Artifact Registry
Para usar o App Lifecycle Manager, é necessário ter um repositório no Artifact Registry. Para criar esse repositório, faça o seguinte:
No console, acesse o Artifact Registry.
Clique em Criar repositório.
Para Nome, digite
vm-quickstart-repo.Mantenha o Formato selecionado como Docker.
Em Região, escolha
us-central1 (Iowa).Clique em Criar.
Criar uma oferta de SaaS
Você tem a configuração do Terraform que define a VM que você quer implantar e um repositório. Agora você pode usar o App Lifecycle Manager para modelar as unidades de implantação e implantar a VM.
Criar um recurso de oferta de SaaS
No console, acesse App Lifecycle Manager > Oferta de SaaS.
Selecione Criar.
No campo Nome da oferta de SaaS, digite:
vm-quickstart-saas-offering.No campo Região , selecione a região
us-central1e clique em OK.Clique em Criar.
As regiões selecionadas para a oferta de SaaS são onde as implantações da sua oferta de SaaS são hospedadas. No exemplo deste guia de início rápido, a oferta de SaaS é uma única VM. Portanto, essas regiões são onde a VM é provisionada e hospedada.
Se você tiver usuários finais acessando essas VMs, eles vão acessar as VMs implantadas nas regiões especificadas aqui.
Modelar as unidades de implantação
Para modelar a oferta de SaaS, crie componentes chamados tipos de unidade. Um tipo de unidade define um componente no serviço para implantação e gerenciamento. Por exemplo, você pode ter um tipo de unidade para uma VM e um segundo tipo de unidade para o aplicativo em execução nessa VM.
Neste guia de início rápido, você cria um tipo de unidade para a VM.
Para criar o tipo de unidade:
No console, acesse App Lifecycle Manager > Tipos de unidade.
Selecione Criar.
Na página Criar blueprints:
- Selecione Fazer upload.
- Para fazer upload da configuração do Terraform que define a VM, faça o seguinte:
- No campo Seletor de arquivos, selecione Procurar.
- Navegue até
terraform-files.zipe selecione esse arquivo, que é o arquivo zip criado anteriormente. - Clique em Abrir.
- Clique em Próxima: configurar blueprint.
Na página Armazenar blueprint:
- Selecione o Artifact Registry:
- No campo Selecionar repositório do Artifact Registry, selecione Procurar.
- Selecione
vm-quickstart-repo, que é o repositório criado anteriormente. - Clique em Selecionar.
- No campo Nome da imagem do artefato, digite
vm-quickstart-blueprint. - Em Versão do Terraform do Infrastructure Manager, selecione
1.5.7. - Para a Conta de serviço do Cloud Build, selecione a conta de serviço criada na seção Antes de começar.
- Clique em Próxima: detalhes do tipo de unidade.
- Selecione o Artifact Registry:
Na página Configurar propriedades do tipo de unidade, faça o seguinte:
- Em Nome do tipo de unidade, digite
vm-quickstart-unit-kind. - Em Oferta de SaaS, selecione
vm-quickstart-saas-offering, que é o recurso de oferta de SaaS criado anteriormente. - Clique em Próxima: configuração da versão
- Em Nome do tipo de unidade, digite
Em Nome da versão, digite
vm-quickstart-first-release.Clique em Criar.
Provisionar a instância de serviço
Para provisionar os recursos que fazem parte de um tipo de unidade, crie unidades. Ao criar uma unidade, o App Lifecycle Manager provisiona os recursos definidos na configuração do Terraform que está conectada ao tipo de unidade. Os recursos são provisionados em cada região que faz parte da oferta de SaaS.
No exemplo deste guia de início rápido, a VM é provisionada na região us-central1.
Crie uma unidade:
No console, acesse App Lifecycle Manager > Unidades.
Selecione Criar.
Na página Criar uma unidade:
- Em Nome da unidade, digite:
vm-quickstart-unit. - Em Oferta de SaaS, selecione o recurso de oferta de SaaS que
você criou anteriormente:
vm-quickstart-saas-offering. - Em Região, selecione
us-central1. - Em Tipo de unidade, selecione o tipo de unidade criado anteriormente:
vm-quickstart-unit-kind. - Selecione Criar.
- Em Nome da unidade, digite:
Para provisionar a VM:
- Na página Detalhes da unidade, selecione Provisionar.
- No campo Versão, selecione
vm-quickstart-first-release. - Para a Conta de serviço, selecione a conta de serviço criada na seção Antes de começar.
Adicione um projeto de locatário:
- Selecione Adicionar variáveis do projeto de locatário.
- Selecione o Google Cloud projeto que você está usando para este guia de início rápido. Quando o App Lifecycle Manager implanta a VM, ele a implanta nesse projeto.
Selecione Provisionar.
O App Lifecycle Manager provisiona uma VM na região especificada na oferta de SaaS. É possível criar unidades em qualquer uma das regiões especificadas na unidade. Neste guia de início rápido, você especificou uma região (us-central1), e é nela que a VM é provisionada.
Conferir a VM implantada
Agora você usou o App Lifecycle Manager para implantar a VM.
Para conferir a VM implantada neste guia de início rápido:
No Google Cloud console, acesse a página App Lifecycle Manager > Unidades > Detalhes da unidade.
Clique no nome da unidade:
vm-quickstart-unit.Na página Detalhes da unidade:
Confira se o Estado é:
- Pronto se a VM estiver provisionada.
- Provisionando se a operação ainda estiver em andamento.
Expanda a seção Variáveis.
Em Variáveis de saída, é possível conferir o IP externo que pode ser usado para acessar a instância.
Também é possível conferir a VM no Compute Engine:
No console, acesse a página Compute Engine > Instâncias de VM.
Confira a VM listada em Instâncias de VM.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Excluir o projeto
Se você implantou a solução em um novo Google Cloud projeto e não precisa mais do projeto, exclua-o seguindo estas etapas:
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- No comando, digite o ID do projeto e clique em desligar.
A seguir
- Para entender melhor o App Lifecycle Manager, consulte Visão geral do App Lifecycle Manager.
- Para começar a usar o App Lifecycle Manager, comece com Criar uma oferta de SaaS.
- Para entender como as contas de serviço são usadas e como conceder permissões detalhadas para essas contas, consulte Contas de serviço do App Lifecycle Manager.
- Para conferir as etapas de atualização da versão, consulte Implementar uma versão.