Se você caiu aqui de pára-quedas e quer ver o que rolou antes, veja o seguinte post:
Terraform do Zero na GCP – Parte 2: Preparando o Ambiente
Agora que já preparamos o terreno, é hora de criar o primeiro projeto. Nesse post, vamos:
- Criar a estrutura básica de um projeto Terraform
- Inicializar o Terraform (
terraform init
) - Criar e aplicar um recurso real na GCP (um bucket no Cloud Storage)
Estrutura de Arquivos
Crie uma pasta para seu projeto e adicione os seguintes arquivos:
1 |
Terraform/<br />├── main.tf<br />├── variables.tf<br />└── outputs.tf |
Escrevendo o main.tf
O arquivo main.tf
é o arquivo onde toda a lógica está detalhada, onde todos os recursos a serem provisionados estão definidos. Obviamente, são feitas diversas segmentações no processo para facilitar a manutenção, mas o arquivo que é lido e validado inicialmente, é o main.tf
1 2 3 4 5 6 7 8 9 10 11 |
provider "google" { project = var.project_id region = var.region credentials = file(var.credentials_file) } resource "google_storage_bucket" "static_site" { name = "${var.project_id}-static-site" location = var.region force_destroy = true } |
Escrevendo o variables.tf
e o variables.tfvars
Aqui fica o arquivo de declaração das variáveis a serem utilizadas no processo.
Você notou o "${var.project_id}-static-site"
logo acima? A ideia aqui é informar para o main.tf que existe uma variável chamada “project_id” e que ela está disponível par ser utilizada.
Qual o valor dela? Se ela não tiver um valor “default”, como na variável region, ela precisará ser declarada no arquivo variables.tfvars
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
variable "project_id" { description = "ID do projeto GCP" type = string } variable "region" { description = "Região onde os recursos serão criados" type = string default = "us-central1" } variable "credentials_file" { description = "Caminho para o arquivo de credenciais (JSON)" type = string } |
Então, crie um arquivo terraform.tfvars
com os valores das variáveis a serem utilizadas:
1 |
project_id = "seu-projeto-id"<br>region = "us-central1"<br>credentials_file = "/caminho/para/terraform-sa-key.json" |
Escrevendo o outputs.tf
1 2 3 4 |
output "bucket_name" { description = "Nome do bucket criado" value = google_storage_bucket.static_site.name } |
Inicializando o Terraform
Execute os comandos no terminal:
1 |
terraform init |

Planejando e aplicando
Primeiro, veja o que será criado:
1 |
terraform plan |

Depois, aplique:
1 |
terraform apply |
Confirme com yes
quando solicitado.
Resultado
Se tudo estiver certo, você verá algo como:
1 |
Apply complete! Resources: 1 added. |
E o nome do bucket criado será exibido no output.

Mas, será que ele criou de fato o bucket?

(Opcional – mas recomendado) Limpando recursos
Para destruir tudo:
1 |
terraform destroy |
E assim, já conseguimos criar o primeiro bucket na GCP!
Mas já terminamos? O que vem no próximo post?
Calma… A brincadeira está só começando!
Agora que criamos nosso primeiro recurso, vamos aprender a trabalhar melhor com as variáveis, outputs, e ver algumas boas práticas, para estruturarmos os projetos de forma escalável.
Se quiser ir para o próximo post da série:
Terraform: Dando o próximo passo – Criando uma infraestrutura do zero na GCP