Todos os produtos
Search
Central de documentação

:Comandos comuns do Terraform

Última atualização: Aug 28, 2026

O Terraform é uma ferramenta cliente para gerenciar recursos de TI. Use comandos do Terraform para gerenciar todos os seus recursos. Este tópico descreve comandos comuns para gerenciamento de recursos e de estado.

Comandos comuns para gerenciamento de recursos

O gerenciamento de recursos no Terraform envolve principalmente o ciclo de vida dos recursos. Use comandos para criar, modificar, visualizar e excluir os recursos definidos em seus modelos do Terraform.

  • terraform plan: Visualizar recursos previamente

    O comando plan visualiza previamente os recursos definidos em um modelo. Utilize-o nos seguintes cenários:

    • Visualize previamente os recursos definidos no modelo atual para verificar se correspondem às suas expectativas. Essa ação é semelhante ao recurso de visualização em Markdown.

    • Caso já exista um arquivo de estado para o modelo atual, o comando plan exibe as diferenças entre a definição do modelo e o conteúdo do arquivo de estado. Se houver alterações, a saída do comando mostrará os resultados.

    • Para um DataSource, execute o comando plan para recuperar e exibir o recurso que você deseja consultar e suas propriedades.

  • terraform apply: Criar e alterar recursos

    O comando apply cria ou altera recursos reais. Por segurança, esse comando inclui uma etapa interativa que exige confirmação manual da operação. Também é possível usar o parâmetro --auto-approve para pular essa confirmação.

    Use o comando apply nas seguintes situações:

    • Criar novos recursos.

    • Alterar propriedades de recursos modificando parâmetros do modelo.

    • Se você remover uma definição de recurso do modelo atual, o comando apply excluirá o recurso. A remoção de um recurso também é considerada uma alteração.

  • terraform show: Exibir recursos

    O comando show exibe todos os recursos gerenciados no estado atual e seus respectivos valores de propriedade.

  • terraform destroy: Liberar recursos

    O comando destroy libera recursos. Por segurança, ele inclui uma etapa interativa que exige confirmação manual da operação. Use o parâmetro --force para pular a confirmação manual.

    Por padrão, terraform destroy libera todos os recursos definidos no modelo atual. Para liberar apenas um recurso específico, especifique-o usando o parâmetro -target=<resource_type>.<resource_name>.

  • terraform import: Importar recursos

    O comando import importa recursos de cloud existentes para o estado do Terraform, permitindo gerenciá-los com essa ferramenta. Use este comando em cenários que incluem, mas não se limitam a:

    • Você possui recursos de cloud existentes criados e gerenciados por meio do console, Alibaba Cloud Command-Line Interface (CLI), Resource Orchestration Service (ROS) ou chamadas diretas de API, e agora deseja gerenciá-los usando o Terraform.

    • É necessário refatorar definições de recursos no modelo sem afetar a operação deles.

    • Um provedor da Alibaba Cloud foi atualizado para uma nova versão. A nova versão do provedor suporta mais parâmetros para recursos definidos no modelo original, e você precisa sincronizar os parâmetros mais recentes.

    Nota

    Para obter mais informações sobre como gerenciar recursos existentes usando o comando import, consulte How to manage existing cloud resources.

  • terraform taint: Marcar um recurso como tainted

    O comando taint marca um recurso como tainted. Na próxima execução do comando apply, o recurso marcado será primeiro liberado e depois recriado. Isso equivale a excluir e recriar aquele recurso específico.

    O formato do comando é: terraform taint <resource_type>.<resource_name>. Por exemplo:

    $ terraform taint alicloud_vswitch.this
    Resource instance alicloud_vswitch.this has been marked as tainted.
  • terraform untaint: Desmarcar um recurso como tainted

    O comando untaint é o inverso do comando taint. Ele remove a marcação tainted e restaura o recurso ao seu estado normal. O formato do comando é semelhante ao do taint: terraform untaint <resource_type>.<resource_name>. Por exemplo:

    $ terraform untaint alicloud_vswitch.this
    Resource instance alicloud_vswitch.this has been successfully untainted.
  • terraform output: Imprimir parâmetros de saída e seus valores

    Se você definir explicitamente um parâmetro de saída no modelo, seu valor será exibido após a execução do comando apply, mas não após a execução do comando plan. Para visualizar o valor de saída a qualquer momento, execute o comando terraform output:

    $ terraform output
    vswitchId = vsw-gw8gl31wz********

Comandos comuns para gerenciamento de estado

O gerenciamento de estado no Terraform envolve a administração dos dados no arquivo de estado. Esse arquivo armazena todos os recursos gerenciados pelo Terraform e suas propriedades. O Terraform armazena o conteúdo automaticamente. Para garantir a integridade dos dados, não modifique manualmente o conteúdo do arquivo de estado. Use o comando terraform state para executar operações nos dados de estado.

  • terraform state list: Listar todos os recursos no estado atual

    O comando state list lista todos os recursos no estado atual, incluindo fontes de dados, no formato <resource_type>.<resource_name>. Por exemplo:

    $ terraform state list
    data.alicloud_slbs.default
    alicloud_vpc.default
    alicloud_vswitch.this
  • terraform state show: Mostrar as propriedades de um recurso específico

    O comando state show exibe todas as propriedades e seus valores para um recurso específico em formato chave-valor. O formato completo do comando é terraform state show <resource_type>.<resource_name>. Por exemplo:

    $ terraform state show alicloud_vswitch.this
    # alicloud_vswitch.this:
    resource "alicloud_vswitch" "this" {
        availability_zone = "eu-central-1a"
     cidr_block = "172.16.0.0/24"
     id = "vsw-gw8gl31wz******"
     vpc_id = "vpc-gw8calnzt*******"
    }
  • terraform state pull: Baixar e exibir o conteúdo do estado atual

    O comando state pull exibe os dados brutos do arquivo de estado atual, de forma semelhante ao comando cat em um shell. Por exemplo:

    $ terraform state pull
    {
        "version": 4,
        "terraform_version": "0.12.8",
        "serial": 615,
        "lineage": "39aeeee2-b3bd-8130-c897-2cb8595cf8ec",
        "outputs": {
         ***
     }
     },
    "resources": [
     {
            "mode": "data",
            "type": "alicloud_slbs",
            "name": "default",
            "provider": "provider.alicloud",
         ***
     },
     {
            "mode": "managed",
            "type": "alicloud_vpc",
            "name": "default",
            "provider": "provider.alicloud",
         ***
     }
     ]
    }
  • terraform state rm: Remover um recurso específico

    O comando state rm remove um recurso do arquivo de estado, mas não exclui o recurso de fato. O formato do comando é: terraform state rm <resource_type>.<resource_name>. Por exemplo:

    $terraform state rm alicloud_vswitch.this
    Removed alicloud_vswitch.this
    Successfully removed 1 resource instance(s).

    Após a remoção do recurso do estado, se o conteúdo do modelo permanecer inalterado e você executar o comando apply novamente, um novo recurso idêntico será criado. É possível readicionar o recurso removido usando o comando import.

  • terraform state mv: Mover um recurso específico

    Para alterar o arquivo de estado onde um recurso está armazenado, use o comando state mv. Essa ação é semelhante ao comando mv em um shell. O comando possui múltiplas opções. Execute terraform state mv --help para obter detalhes. Este tópico descreve o uso mais comum: terraform state mv --state=./terraform.tfstate --state-out=<target_path>/terraform-target.tfstate <resource_type>.<resource_name_A> <resource_type>.<resource_name_B>. Por exemplo:

    $ terraform state mv --state-out=../tf.tfstate alicloud_vswitch.this alicloud_vswitch.default
    Move "alicloud_vswitch.this" to "alicloud_vswitch.default"
    Successfully moved 1 object(s)

    O comando anterior omite a opção padrão --state=./terraform.tfstate. O comando move o recurso vSwitch do estado atual para um arquivo de estado chamado tf.tfstate no diretório pai e renomeia o recurso vSwitch de "this" para "default".

  • terraform refresh: Atualizar o estado atual

    O comando refresh atualiza o conteúdo do estado atual. Ele chama a API novamente para recuperar os dados mais recentes e os grava no arquivo de estado.

Outros comandos comuns

Além dos comandos para gerenciamento de recursos e de estado, outros comandos comuns são usados em vários cenários que envolvem modelos e provedores.

  • terraform init: Inicializar e carregar módulos

    O comando init inicializa e carrega os módulos necessários, como provedores, provisionadores e módulos.

  • terraform graph: Gerar o gráfico de dependência de recursos

    Os recursos definidos em um modelo têm dependências entre si. Para visualizar o gráfico de dependência de recursos, use o comando terraform graph:

    $ terraform graph
    digraph {
     compound = "true"
     newrank = "true"
     subgraph "root" {
     "[root] alicloud_vpc.default" [label = "alicloud_vpc.default", shape = "box"]
     "[root] alicloud_vswitch.this" [label = "alicloud_vswitch.this", shape = "box"]
                    ******
     "[root] output.vswitchId" -> "[root] alicloud_vswitch.this"
     "[root] provider.alicloud (close)" -> "[root] alicloud_vswitch.this"
    ******
     "[root] root" -> "[root] provider.alicloud (close)"
     }
    }                 

    Também é possível exportar a saída deste comando para um arquivo de imagem executando terraform graph | dot -Tsvg > graph.svg. Primeiro, instale o Graphviz executando brew install graphviz.graph_img

  • terraform validate: Validar a sintaxe do modelo

    A escrita de um modelo do Terraform exige seguir um conjunto simples de regras de sintaxe definidas pela ferramenta. Após escrever um modelo, caso queira verificar erros de sintaxe ou se um erro for relatado ao executar o comando plan ou apply, execute o comando terraform validate para identificar a posição e a causa do erro.