Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Hashicorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Terraform fornece plug-ins chamados
provedores, que permitem interagir com provedores de nuvem e outras
APIs. É possível usar o provedor do Terraform para Google Cloud
(provedorGoogle Cloud ) para provisionar e gerenciar a infraestrutura
Google Cloud.
Benefícios do uso do Terraform
Esta seção explica alguns dos benefícios de usar o Terraform para provisionar e
gerenciar a infraestrutura Google Cloud :
O Terraform é a ferramenta mais usada para provisionar e automatizar
Google Cloud infraestrutura. É possível usar o provedor
Google Cloud
para configurar e gerenciar todos os recursos Google Cloud usando a mesma
sintaxe e ferramentas declarativas.
O Terraform permite especificar o estado final de sua preferência para a infraestrutura.
Em seguida, você pode implantar a mesma configuração várias vezes para criar ambientes de desenvolvimento, teste e produção reproduzíveis.
O Terraform permite gerar um plano de execução que mostra o que ele fará quando a configuração for aplicada. Assim, você evita surpresas ao
modificar sua infraestrutura com o Terraform.
O Terraform permite empacotar e reutilizar códigos comuns na forma de
módulos.
Os módulos apresentam interfaces padrão para criar recursos de nuvem. Eles simplificam os projetos aumentando a legibilidade e permitem que as equipes organizem a infraestrutura em blocos legíveis. Além disso,o Google Cloud
publica vários módulos implantáveis como
blueprints e
exemplos de introdução como Soluções
de início rápido.
O Terraform registra o estado atual da infraestrutura e permite
gerenciar o estado com eficácia. O arquivo de estado do Terraform monitora todos os recursos em uma implantação.
Usando o Terraform
O Terraform tem uma sintaxe declarativa e orientada por configuração, que pode ser usada
para criar a infraestrutura
que você quer provisionar. Usando essa sintaxe, você definirá o estado final de sua preferência para sua infraestrutura em um arquivo de configuração do Terraform. Em seguida,
você vai usar a CLI do Terraform para provisionar
a infraestrutura com base no arquivo de configuração.
As etapas a seguir explicam como o Terraform funciona:
Você descreve a Google Cloud infraestrutura que quer provisionar
em um arquivo de configuração do Terraform. Não é preciso criar um código
que descreva como provisionar essa configuração.
Você executa o comando terraform plan, que avalia sua configuração e gera um plano de execução. É possível analisar o plano e fazer alterações conforme necessário.
Em seguida, você executa o comando terraform apply, que realiza as seguintes
ações:
Ele provisiona sua infraestrutura com base no plano de execução invocando
as APIs Google Cloud correspondentes em segundo plano.
Ele cria um arquivo de estado do Terraform, que é um mapeamento formatado em JSON de
recursos no seu arquivo de configuração para os recursos da
infraestrutura do mundo real. O Terraform usa esse arquivo para saber o estado mais recente da infraestrutura e para determinar quando criar, atualizar e destruir recursos.
Em seguida, ao executar terraform apply, o Terraform usa o mapeamento no
arquivo de estado para comparar a infraestrutura atual com o código e fazer
atualizações conforme necessário:
Se um objeto de recurso definido no arquivo de configuração não existir no arquivo de estado, o Terraform o criará.
Se há um objeto de recurso no arquivo de estado, mas tem uma configuração
diferente do arquivo de configuração, o Terraform atualiza o
recurso para corresponder ao arquivo de configuração.
Se um objeto de recurso no arquivo de estado corresponder ao seu arquivo de configuração, o Terraform deixará o recurso inalterado.
provedores deGoogle Cloud
Há dois provedores que permitem provisionar e gerenciar a infraestrutura Google Cloud:
google: use esse provedor para provisionar e gerenciar as APIs Google Cloud .
google-beta: use esse provedor para provisionar e gerenciar as APIs Beta do Google Cloud.
Os provedores google e google-beta são desenvolvidos usando uma ferramenta chamada
Magic Modules. Com os Módulos mágicos, os colaboradores podem fazer mudanças em uma
única base de código e desenvolver os provedores google e google-beta
simultaneamente.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 UTC."],[[["\u003cp\u003eTerraform is an Infrastructure as Code (IaC) tool for provisioning and managing cloud infrastructure, particularly effective for Google Cloud through its dedicated providers.\u003c/p\u003e\n"],["\u003cp\u003eUsing Terraform on Google Cloud offers benefits such as creating reproducible environments, generating execution plans, reusing code through modules, and effectively managing the state of your infrastructure.\u003c/p\u003e\n"],["\u003cp\u003eTerraform utilizes a declarative syntax where you define your desired infrastructure end-state, and it uses its CLI to provision and manage your configuration accordingly.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eterraform apply\u003c/code\u003e command provisions infrastructure based on an execution plan, interfacing with Google Cloud APIs and maintaining a state file to track resource changes.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egoogle\u003c/code\u003e and \u003ccode\u003egoogle-beta\u003c/code\u003e providers are used to provision and manage both general and beta Google Cloud APIs, respectively, and are developed using the Magic Modules tool.\u003c/p\u003e\n"]]],[],null,["# Overview of Terraform on Google Cloud\n\nHashicorp Terraform is an Infrastructure as code (IaC) tool that lets you\nprovision and manage cloud infrastructure. Terraform provides plugins called\n*providers* that lets you interact with cloud providers and other\nAPIs. You can use the *Terraform provider for Google Cloud*\n(*Google Cloud provider*) to provision and manage Google Cloud\ninfrastructure.\n\nBenefits of using Terraform\n---------------------------\n\nThis section explains some of the benefits of using Terraform to provision and\nmanage Google Cloud infrastructure:\n\n- Terraform is the most commonly used tool to provision and automate Google Cloud infrastructure. You can use the [Google Cloud\n provider](https://registry.terraform.io/providers/hashicorp/google/latest/docs) to configure and manage all Google Cloud resources using the same declarative syntax and tooling.\n- Terraform lets you specify your preferred end state for your infrastructure. You can then deploy the same configuration multiple times to create reproducible development, test, and production environments.\n- Terraform lets you generate an execution plan that shows what Terraform will do when you apply your configuration. This lets you avoid any surprises when you modify your infrastructure through Terraform.\n- Terraform lets you package and reuse common code in the form of [modules](https://registry.terraform.io/namespaces/terraform-google-modules). Modules present standard interfaces for creating cloud resources. They simplify projects by increasing readability and allow teams to organize infrastructure in readable blocks. Additionally, Google Cloud publishes a number of opinionated deployable modules as [blueprints](/docs/terraform/blueprints/terraform-blueprints) and getting-started examples as [Jump Start\n Solutions](/solutions?jump-start-solutions#section-3).\n- Terraform records the current state of your infrastructure and lets you manage state effectively. The Terraform state file keeps track of all resources in a deployment.\n\nUsing Terraform\n---------------\n\nTerraform has a declarative and configuration-oriented syntax, which you can use\nto [author the infrastructure](https://developer.hashicorp.com/terraform/language)\nthat you want to provision. Using this syntax, you'll define your preferred\nend-state for your infrastructure in a *Terraform configuration file* . You'll then\nuse the [Terraform CLI](/docs/terraform/basic-commands) to provision\ninfrastructure based on the configuration file.\n\nThe following steps explain how Terraform works:\n\n1. You describe the Google Cloud infrastructure you want to provision in a Terraform configuration file. You don't need to author code describing *how* to provision this configuration.\n2. You run the `terraform plan` command, which evaluates your configuration and generates an execution plan. You can review the plan and make changes as needed.\n3. Then, you run the `terraform apply` command, which performs the following actions:\n - It provisions your infrastructure based on your execution plan by invoking the corresponding Google Cloud APIs in the background.\n - It creates a *Terraform state file*, which is a JSON formatted mapping of resources in your configuration file to the resources in the real world infrastructure. Terraform uses this file to know the latest state of your infrastructure, and to determine when to create, update, and destroy resources.\n4. Subsequently, when you run `terraform apply`, Terraform uses the mapping in the state file to compare the existing infrastructure to the code, and make updates as necessary:\n - If a resource object defined in the configuration file does not exist in the state file, Terraform creates it.\n - If a resource object exists in the state file, but has a different configuration from your configuration file, Terraform updates the resource to match your configuration file.\n - If a resource object in the state file matches your configuration file, Terraform leaves the resource unchanged.\n\nGoogle Cloud providers\n----------------------\n\nThere are two providers that let you provision and manage Google Cloud\ninfrastructure:\n\n- `google`: Use this provider to provision and manage Google Cloud APIs.\n- `google-beta`: Use this provider to provision and manage Google Cloud beta APIs.\n\nFor instructions on using these providers, see the\n[Google Cloud provider configuration reference](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference).\n\n`google` and `google-beta` providers are developed using a tool called\n*Magic Modules* . Magic Modules allows contributors to make changes against a\nsingle codebase and develop both `google` and `google-beta` providers\nsimultaneously.\n\nYou can contribute to the Google Cloud providers using Magic Modules\nby following the instructions in the\n[Magic Modules contribution guide](https://googlecloudplatform.github.io/magic-modules/get-started/generate-providers/).\n\nWhat's next\n-----------\n\n- Learn how to [create a basic web server on Compute Engine using Terraform](/docs/terraform/get-started-with-terraform)\n- Learn how to [store Terraform state in a Cloud Storage bucket](/docs/terraform/resource-management/store-state)\n- Look through the various [Terraform for Google Cloud samples](/docs/samples?language=terraform)\n- Look through the [Terraform modules and blueprints for Google Cloud](/docs/terraform/blueprints/terraform-blueprints)"]]