Todos os produtos
Search
Central de documentação

Terraform:Create resources with Terraform

Última atualização: Jul 10, 2026

O Terraform é uma ferramenta de código aberto para infraestrutura como código (IaC) que gerencia todo o ciclo de vida dos recursos da Alibaba Cloud por meio de arquivos de configuração declarativos. Use uma interface visual ou a linha de comando para criar seu primeiro recurso na Alibaba Cloud.

Escolha um método

O Terraform oferece duas abordagens: visual e linha de comando. Escolha a que melhor atende às suas necessidades.

Método

Cenários

Vantagens

Limitações

Terraform Explorer

Primeiro uso, desconhecimento dos parâmetros, depuração rápida

Configure recursos usando um formulário gráfico. Não requer codificação.

Suporta apenas operações de recurso único.

Terraform CLI

Avaliação rápida, ambientes de produção, orquestração complexa

Suporta orquestração de múltiplos recursos e gerenciamento de estado.

Requer um ambiente de CLI.

Se optar pelo método CLI, prepare seu ambiente usando o Cloud Shell ou a instalação local.

Use o Terraform Explorer

O Terraform Explorer é a ferramenta de depuração online da Alibaba Cloud que gera arquivos de configuração do Terraform a partir de formulários e os executa na nuvem. Para mais informações, consulte Visão geral do Explorer.

O exemplo a seguir cria uma Virtual Private Cloud (VPC) para demonstrar duas formas de usar o Terraform Explorer: parâmetros personalizados e modelos de exemplo.

Crie recursos usando parâmetros personalizados

Para configurar os parâmetros conforme suas necessidades, siga estas etapas:

  1. Faça login no Terraform Explorer. Selecione um Product e um Resource Type. Preencha os parâmetros usando a Resource Documentation e clique em Initiate.

    Os principais parâmetros para criar uma VPC estão listados abaixo. Para mais detalhes sobre os parâmetros, consulte alicloud_vpc.

    Nome do parâmetro

    Descrição

    Valor de exemplo

    vpc_name

    Nome da VPC

    tf-test-vpc

    cidr_block

    Bloco CIDR privado para a VPC

    192.168.0.0/16

    description

    Descrição da VPC

    The VPC was created using Terraform.

  2. Na aba Template Details, confirme se os parâmetros estão corretos e clique em Plan para visualizar o plano de execução.

    terraform {
      required_providers {
        alicloud = {
          source = "aliyun/alicloud"
          version = "1.231.0"
        }
      }
    }
    provider "alicloud" {
      region  = "cn-beijing"
    }
    resource "alicloud_vpc" "default" {
      cidr_block  = "192.168.0.0/16"
      description = "The VPC was created using Terraform."
      vpc_name    = "tf-test-vpc"
    }
  3. Na aba Details, revise as informações sobre os recursos a serem criados e clique em Execute.

    O resultado da pré-visualização mostra um status Success e a mensagem Plan: 1 to add, 0 to change, 0 to destroy, indicando que o recurso alicloud_vpc.default será criado. O cidr_block é 192.168.0.0/16 e a description é The VPC was created using Terraform.. O Terraform gera outros atributos após a execução.

  4. Na aba Execution Details, visualize o resultado. Uma execução bem-sucedida exibe a mensagem "Apply complete! Resources: 1 added, 0 changed, 0 destroyed.". Se a execução falhar, modifique os parâmetros com base na mensagem de erro e tente novamente.

  5. Na aba Resource Details, visualize as informações sobre o recurso criado.

    O endereço do recurso é alicloud_vpc.default. A página exibe vários atributos da VPC, incluindo:

    • cidr_block: 192.168.0.0/16

    • name: tf-test-vpc

    • description: The VPC was created using Terraform.

    • create_time: Horário de criação da VPC.

    • Configurações de rede, como classic_link_enabled e enable_ipv6.

    • Informações de recursos associados, como resource_group_id, route_table_id e router_id.

  6. (Opcional) Modifique o recurso: ajuste os parâmetros, clique em Plan & Apply e repita as etapas 2 a 4. Uma atualização bem-sucedida exibe a mensagem "Apply complete! Resources: 0 added, 1 changed, 0 destroyed.".

  7. (Opcional) Destrua o recurso: na aba Execution Details, clique em Destroy Resources. Em seguida, na aba Details, clique em Execute.

    Ao concluir a operação, a aba Execution Details mostrará um status Success com a mensagem Apply complete! Resources: 0 added, 0 changed, 1 destroyed, confirmando a destruição do recurso VPC.

Crie recursos usando um modelo de exemplo

Caso não esteja familiarizado com os parâmetros de recursos ou queira começar rapidamente, use um modelo de exemplo do Terraform Explorer.

  1. Faça login no Terraform Explorer. Selecione o Product, o Resource Type e o Sample Template correspondentes e clique em Initiate. Visualize os detalhes do modelo na aba Sample Template à direita.

    Na área Input Parameters à esquerda, visualize e modifique os parâmetros exigidos pelo modelo. Por exemplo, defina o parâmetro name como terraform-example. Clique em Add Parameter para adicionar mais parâmetros.

  2. Na aba Template Details, clique em Plan & Apply.

    Este modelo de exemplo está no formato Terraform. Ele define um recurso alicloud_vpc com parâmetros como ipv6_isp definido como BGP, cidr_block definido como 10.0.0.0/8 e enable_ipv6 definido como true.

  3. Na aba Execution Details, visualize o resultado da execução.

  4. (Opcional) Para destruir o recurso criado, clique em Destroy Resources na aba Execution Details. Depois, na aba Details, clique em Execute.

Nota

Também é possível executar operações como Continue e Destroy Resources a partir do Call History.

Use o Terraform CLI

Para usar o Terraform via linha de comando, prepare um ambiente de CLI, escreva um arquivo de configuração e execute comandos para criar recursos. Escolha um dos métodos abaixo para configurar seu ambiente:

  • Cloud Shell (recomendado): Nenhuma instalação necessária. Ideal para avaliação rápida e aprendizado.

  • Instalação local: Mais indicado para ambientes de produção, integração contínua e uso a longo prazo.

Cloud Shell

O Alibaba Cloud Cloud Shell é uma ferramenta operacional gratuita pré-instalada com o Terraform e pré-configurada com credenciais de identidade, permitindo a execução imediata de comandos do Terraform.

Faça login no Cloud Shell

Abra seu navegador e acesse o Cloud Shell. Para mais informações, consulte Usar o Cloud Shell.

Nota

Faça login como um usuário RAM. Para proteger sua conta Alibaba Cloud, evite usá-la para acessar recursos da nuvem, a menos que seja necessário.

Alterne versões do Terraform

A versão padrão do Terraform no Cloud Shell pode estar desatualizada. Alterne para a versão 1,2 ou posterior para garantir que todos os recursos funcionem corretamente.

  1. Verifique sua versão atual do Terraform:

    terraform version
    shell@Alicloud:~$ terraform version
    Terraform v0.12.31
    Your version of Terraform is out of date! The latest version
    is 1.12.2. You can update by downloading from https://www.terraform.io/downloads.html
  2. Liste as versões disponíveis do Terraform no Cloud Shell:

    tfenv list
    shell@Alicloud:~$ tfenv list
      1.9.5
      1.5.7
      1.3.7
      0.13.7
    * 0.12.31 (set by /usr/local/tfenv/version)
  3. Alterne para uma versão específica (por exemplo, 1.9.5):

    tfenv use 1.9.5
    shell@Alicloud:~$ tfenv use 1.9.5
    Switching default version to v1.9.5
    Switching completed

Instalação local

Recomendada para ambientes de produção e orquestrações complexas. Instale o Terraform e configure as credenciais de identidade antes de prosseguir.

Instalar usando um gerenciador de pacotes (recomendado)

macOS

Instale usando o Homebrew:

# Add HashiCorp's tap to define where packages are located in Homebrew
brew tap hashicorp/tap
# Install Terraform
brew install hashicorp/tap/terraform

Atualize para a versão mais recente:

# Update Homebrew
brew update
# Upgrade Terraform
brew upgrade hashicorp/tap/terraform

Windows

Instale usando o Chocolatey:

choco install terraform

Linux

Por exemplo, usando o gerenciador de pacotes yum:

yum install -y dnf-plugin-releasever-adapter
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install terraform

Instalação manual

Se um gerenciador de pacotes não estiver disponível, instale o Terraform manualmente.

Usar um binário pré-compilado

  1. Baixe o arquivo ZIP para seu sistema operacional no site do Terraform e extraia o arquivo compactado.

  2. Mova o arquivo binário terraform para um diretório no PATH do seu sistema:

    • macOS ou Linux

      mv ~/Downloads/terraform /usr/local/bin/
    • Windows

      1. Abra Painel de Controle > Sistema > Configurações do Sistema > Variáveis de Ambiente.

      2. Em Variáveis do Sistema, localize PATH e clique em Editar.

      3. Adicione o caminho para o seu diretório do Terraform. Separe-o de outras entradas com um ponto e vírgula (por exemplo, c:\path;c:\path2).

      4. Abra uma nova janela de linha de comando para que a alteração tenha efeito.

Compilar a partir do código-fonte

Primeiro, instale o ambiente de desenvolvimento Go.

  1. Clone o repositório de código-fonte do Terraform:

    git clone https://github.com/hashicorp/terraform.git
  2. Navegue até o diretório, compile e instale o software.

    cd terraform
    go install

    Após a compilação, o binário é colocado no diretório $GOPATH/bin/.

  3. Certifique-se de que $GOPATH/bin esteja adicionado ao PATH do seu sistema. Use as mesmas etapas descritas em Usar um binário pré-compilado, etapa 2.

Verifique a instalação

Execute o seguinte comando para verificar se o Terraform foi instalado corretamente:

terraform version

Se o número da versão for exibido, a instalação estará concluída.

Exemplo: Criar uma instância ECS

Este exemplo percorre todo o fluxo de trabalho do Terraform criando uma instância ECS: VPC → vSwitch → grupo de segurança → instância ECS.

  1. Crie um diretório de trabalho e escreva o arquivo de configuração do Terraform main.tf:

    mkdir tf-demo && cd tf-demo
    vim main.tf

    Copie o código a seguir para main.tf:

    provider "alicloud" {
      region = var.region
    }
    # Region for resource creation
    variable "region" {
      default = "cn-beijing"
    }
    # ECS instance name
    variable "instance_name" {
      default = "tf-cloudshell-test"
    }
    # ECS instance type
    variable "instance_type" {
      default = "ecs.n2.small"
    }
    # Outbound public bandwidth. A value of 0 means no public network access.
    variable "internet_bandwidth" {
      default = 10
    }
    # ECS OS image
    variable "image_id" {
      default = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
    }
    # ECS system disk type
    variable "disk_category" {
      default = "cloud_efficiency"
    }
    # ECS instance logon password
    variable "password" {
      default = "TF-test@1234"
    }
    # Create a VPC
    resource "alicloud_vpc" "vpc" {
      vpc_name   = "tf_test_foo"
      cidr_block = "172.16.0.0/12"
    }
    # Query for availability zones based on the instance type and disk category
    data "alicloud_zones" "default" {
      available_disk_category     = var.disk_category
      available_resource_creation = "VSwitch"
      available_instance_type     = var.instance_type
    }
    # Create a vSwitch
    resource "alicloud_vswitch" "vsw" {
      vpc_id     = alicloud_vpc.vpc.id
      cidr_block = "172.16.0.0/21"
      zone_id    = data.alicloud_zones.default.zones.0.id
    }
    # Create a security group
    resource "alicloud_security_group" "default" {
      security_group_name   = "default"
      vpc_id = alicloud_vpc.vpc.id
    }
    # Create an inbound security group rule
    resource "alicloud_security_group_rule" "allow_all_tcp" {
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "1/65535"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
    resource "alicloud_instance" "instance" {
      # Attach the security group
      security_groups = alicloud_security_group.default.*.id
      instance_type = var.instance_type
      system_disk_category = var.disk_category
      image_id = var.image_id
      instance_name = var.instance_name
      # Specify the vSwitch
      vswitch_id = alicloud_vswitch.vsw.id
      internet_max_bandwidth_out = var.internet_bandwidth
      password  = var.password
    }
    Importante

    A regra do grupo de segurança neste exemplo abre todas as portas TCP (1-65535) e permite tráfego de qualquer endereço IP (0.0.0.0/0). Use esta configuração apenas em ambientes de teste. Em produção, restrinja as portas e os endereços IP de origem conforme necessário.

  2. Inicialize o diretório de trabalho do Terraform:

    terraform init
  3. Visualize o plano de execução para confirmar quais recursos serão criados:

    terraform plan
    shell@Alicloud:~/tf-demo$ terraform plan
    data.alicloud_zones.default: Reading...
    data.alicloud_zones.default: Read complete after 1s [id=1373912221]
    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:
      # alicloud_instance.instance will be created
      + resource "alicloud_instance" "instance" {
          + availability_zone                  = (known after apply)
          + cpu                                = (known after apply)
          + create_time                        = (known after apply)
          + credit_specification               = (known after apply)
          + deployment_set_group_no            = (known after apply)
          + description                        = (known after apply)
          + dry_run                            = false
          + enable_jumbo_frame                 = (known after apply)
          + expired_time                       = (known after apply)
          + host_name                          = (known after apply)
          + http_endpoint                      = (known after apply)
          + http_put_response_hop_limit        = (known after apply)
          + http_tokens                        = (known after apply)
          + id                                 = (known after apply)
          + image_id                           = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
          + instance_charge_type               = (known after apply)
          + instance_name                      = "tf-cloudshell-test"
          + instance_type                      = "ecs.n2.small"
          + internet_charge_type               = (known after apply)
          + internet_max_bandwidth_in          = (known after apply)
          + internet_max_bandwidth_out         = 10
          + io_optimized                       = (known after apply)
          + ipv6_address_count                 = (known after apply)
          + ipv6_addresses                     = (known after apply)
          + key_name                           = (known after apply)
          + maintenance_action                 = (known after apply)
          + memory                             = (known after apply)
          + network_interface_id               = (known after apply)
          + network_interface_traffic_mode     = (known after apply)
          + os_name                            = (known after apply)
          + os_type                            = (known after apply)
          + password                           = (sensitive value)
          + period                             = (known after apply)
          + primary_ip_address                 = (known after apply)
  4. Crie os recursos. A saída "Apply complete!" indica sucesso:

    terraform apply
    Apply complete! Resources: 5 added, 0 changed, 0 destroyed.
  5. Para liberar esses recursos, execute:

    terraform destroy

Referências