Informações gerais
Neste laboratório, você vai usar o Terraform para criar, atualizar e destruir recursos do Google Cloud. Você vai começar definindo o Google Cloud como provedor.
Depois, você vai criar uma instância de VM sem mencionar a rede para conferir como o Terraform analisa o código de configuração. Em seguida, você vai incluir a rede no código e criar uma instância de VM no Google Cloud.
Você também vai aprender a atualizar a instância de VM. Você vai adicionar tags à configuração e editar o tipo de máquina. Depois, você vai executar os comandos do Terraform para destruir os recursos criados.
Objetivos
Neste laboratório, você vai aprender a executar as seguintes tarefas:
- Verificar a instalação do Terraform
- Definir o Google Cloud como provedor
- Criar, mudar e destruir recursos do Google Cloud usando o Terraform
Tarefa 1. Fazer login no console do Cloud
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.
-
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento.
No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}}
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}}
Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar uma lista de produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo ou digite o nome do serviço ou produto no campo Pesquisar.
Tarefa 2: Verificar a instalação do Terraform
-
No menu do Google Cloud, clique em Ativar o Cloud Shell (
). Se aparecer uma caixa de diálogo, clique em Continuar.
-
Se for solicitado, clique em "Continuar".
-
Para confirmar se o Terraform está instalado, execute o seguinte comando:
Observação: não se preocupe se você receber um aviso informando que a versão do Terraform está desatualizada, porque as instruções do laboratório vão funcionar com o Terraform v1.0.5 e versões mais recentes.
terraform --version
Observação: os downloads da versão mais recente estão disponíveis no site do Terraform. O Terraform é distribuído como um pacote binário para todas as plataformas e arquiteturas suportadas, e o Cloud Shell usa o Linux de 64 bits.
A saída será parecida com esta (não copie, este é o exemplo de saída):
Terraform v1.5.7
O Terraform vem pré-instalado no Cloud Shell. Com o Terraform já instalado, é possível criar algumas infraestruturas diretamente.
Tarefa 3. Adicionar o Google Cloud como provedor
- Crie o arquivo
main.tf
:
touch main.tf
-
Na barra de ferramentas do Cloud Shell, clique em Abrir Editor. Clique em Abrir em uma nova janela para deixar o Editor aberto em uma guia separada.
-
Copie o código a seguir no arquivo main.tf
.
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
- Clique em Arquivo > Salvar.
- Mude para o Cloud Shell e execute o comando
terraform init
.
terraform init
A saída será parecida com esta (não copie, este é o exemplo de saída):
Initializing the backend...
Initializing provider plugins...
- Finding hashicorp/google versions matching "4.15.0"...
- Installing hashicorp/google v4.15.0...
- Installed hashicorp/google v4.15.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
Tarefa 4. Criar a infraestrutura
Vamos tentar criar uma instância de computação sem especificar o parâmetro de rede e conferir como o Terraform processa essa configuração.
- Mude para a janela do editor. No arquivo
main.tf
, insira o seguinte bloco de código.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
}
-
Para salvar o arquivo main.tf, clique em Arquivo > Salvar.
-
Agora, execute o seguinte comando para conferir se o mecanismo de computação será criado.
terraform plan
- Se a configuração falhar, será mostrado o seguinte erro. Isso acontece porque não é possível configurar um mecanismo de computação sem uma rede.
│ Error: Insufficient network_interface blocks
│
│ on main.tf line 15, in resource "google_compute_instance" "terraform":
│ 15: resource "google_compute_instance" "terraform" {
│
│ At least 1 "network_interface" blocks are required.
- Agora, inclua o seguinte segmento de código ao bloco
google_compute_instance
para adicionar a rede.
network_interface {
network = "default"
access_config {
}
}
O código final no arquivo main.tf vai ficar assim:
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
}
- Para salvar o arquivo main.tf, clique em Arquivo > Salvar.
- Agora, execute o comando
terraform plan
para conferir se o mecanismo de computação será criado.
terraform plan
Clique em Autorizar quando solicitado.
A saída será parecida com esta (não copie, este é o exemplo de saída):
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.terraform vai ser criada
+ resource "google_compute_instance" "terraform" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ current_status = (known after apply)
+ deletion_protection = false
...
Plan: 1 to add, 0 to change, 0 to destroy.
- Para aplicar as mudanças desejadas, execute o seguinte comando.
terraform apply
- Digite
yes
para confirmar as ações planejadas.
A saída será parecida com esta (não copie, este é o exemplo de saída):
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Observação: se ocorrer um erro, revise as etapas anteriores para verificar se o código correto foi inserido no arquivo main.tf.
Clique em Verificar meu progresso para confirmar se o mecanismo de computação foi criado.
Criar a infraestrutura
Verificar no console do Cloud
Verifique se os recursos foram criados no console do Google Cloud.
-
No console do Google Cloud, acesse o Menu de navegação (
) e clique em Compute Engine > Instâncias de VM.
-
Confira a instância terraform que foi criada.

Tarefa 5. Mudar a infraestrutura
Nesta tarefa, você vai realizar dois tipos de mudanças na infraestrutura:
- Adicionar tags de rede
- Editar o tipo de máquina
Adicionar tags ao recurso de computação
O Terraform não serve só para criar, mas também para mudar recursos.
- Adicione um argumento
tags
à instância que acabamos de criar para que ela fique assim:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
tags = ["web", "dev"]
# ...
}
- Execute
terraform plan
.
terraform plan
- Execute
terraform apply
para atualizar a instância.
terraform apply
A saída será parecida com esta (não copie, este é o exemplo de saída):
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# google_compute_instance.terraform vai ser atualizada no local
~ resource "google_compute_instance" "terraform" {
id = "projects/qwiklabs-gcp-00-da04aeabe9ab/zones/us-central1-c/instances/terraform"
name = "terraform"
~ tags = [
+ "dev",
+ "web",
]
# (17 atributos inalterados ocultos)
# (4 blocos inalterados ocultos)
}
Plan: 0 to add, 1 to change, 0 to destroy.
O prefixo ~
significa que o Terraform vai atualizar o recurso correspondente.
- Responda
yes
quando solicitado para que o Terraform adicione as tags à sua instância.
Clique em Verificar meu progresso para conferir se as tags foram adicionadas.
Adicionar tags ao recurso de computação
Editar o tipo de máquina sem interromper a VM
Não é possível mudar o tipo de máquina de uma VM se ela estiver sendo executada. Vamos conferir como o Terraform processa uma mudança de tipo de máquina quando a VM está em execução.
- Acesse o arquivo main.tf e edite o argumento machine_type da instância fornecida pelo Terraform de
e2-micro
para e2-medium
. Ele precisa ficar assim:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
# ...
}
- Execute
terraform plan
.
terraform plan
- Execute
terraform apply
de novo para atualizar a instância.
terraform apply
O comando "terraform apply" vai falhar e será mostrado um aviso parecido com este (não copie, porque é apenas um exemplo de saída):
╷
│ Error: Changing the machine_type, min_cpu_platform, service_account, enable_display, shielded_instance_config, scheduling.node_affinities or network_interface.[#d].(network/subnetwork/subnetwork_project) or advanced_machine_features on a started instance requires stopping it. To acknowledge this, please set allow_stopping_for_update = true in your config. You can also stop it by setting desired_status = "TERMINATED", but the instance will not be restarted after the update.
│
│ with google_compute_instance.terraform,
│ on main.tf line 31, in resource "google_compute_instance" "terraform":
│ 31: resource "google_compute_instance" "terraform" {
- Não é possível mudar o tipo de máquina se a VM estiver sendo executada. Para garantir que a VM seja interrompida antes de atualizar
machine_type
, defina o argumento allow_stopping_for_update
como true
para que o código fique assim:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
allow_stopping_for_update = true
}
- Execute
terraform plan
.
terraform plan
- Execute
terraform apply
de novo para atualizar a instância.
terraform apply
-
Responda yes
quando solicitado.
-
Para conferir a mudança no tipo de máquina e as tags adicionadas, acesse Instâncias de VM no console do Cloud e clique na instância terraform criada.

Clique em Verificar meu progresso para conferir se o tipo de máquina do Compute Engine fornecido pelo Terraform é e2-medium.
Mudar o tipo de máquina na infraestrutura
Tarefa 6. Destruir a infraestrutura
Agora você já sabe criar e mudar a infraestrutura. Antes de passar para a criação de vários recursos e mostrar as dependências deles, você vai conferir como destruir completamente a infraestrutura gerenciada pelo Terraform.
- Execute o comando a seguir. Responda
yes
para executar esse plano e destruir a infraestrutura:
terraform destroy
O prefixo -
indica que a instância e a rede serão destruídas.
- Para confirmar que a instância fornecida pelo Terraform não existe mais, acesse Instâncias de VM no console do Cloud.
Clique em Verificar meu progresso para conferir se a infraestrutura foi destruída.
Destruir a infraestrutura
Parabéns!
Neste laboratório, você aprendeu a executar as seguintes tarefas:
- Verificar a instalação do Terraform
- Definir o Google Cloud como provedor
- Criar, mudar e destruir recursos do Google Cloud usando o Terraform
Finalize o laboratório
Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.
Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.
O número de estrelas indica o seguinte:
- 1 estrela = muito insatisfeito
- 2 estrelas = insatisfeito
- 3 estrelas = neutro
- 4 estrelas = satisfeito
- 5 estrelas = muito satisfeito
Feche a caixa de diálogo se não quiser enviar feedback.
Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.
Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.