Todos os produtos
Search
Central de documentação

:Create a plan, site, and DNS record with Terraform

Última atualização: Aug 31, 2026

Após conectar um site ao ESA, adicione um registro DNS para registrar o nome de domínio no ESA. Isso garante a resolução e o acesso ao nome de domínio acelerado. Este tópico descreve como usar o Terraform para adicionar um registro DNS.

Recursos

Observações

  • Os tipos de plano disponíveis variam entre contas do Alibaba Cloud China Website e do Alibaba Cloud International Website.

    • Planos disponíveis para contas do Alibaba Cloud China Website:

      • Free Edition: entranceplan

      • Basic Edition: basic

      • Standard Edition: medium

      • Premium Edition: high

    • Planos disponíveis para contas do Alibaba Cloud International Website:

      • Entrance: entranceplan_intl

      • Pro: basicplan_intl

      • Premium: vipplan_intl

  • Atualmente, não é possível criar um plano Enterprise com o Terraform. Para adquirir um plano Enterprise, entre em contato conosco.

  • Ao criar um site com o Terraform, associe-o ao ID da instância de um plano Enterprise Edition existente.

  • Ao criar um plano com o Terraform, configure o provider do Terraform conforme o tipo da sua conta: Alibaba Cloud China Website ou Alibaba Cloud International Website.

    • Método 1: Defina o parâmetro region.

      • Alibaba Cloud China Website: cn-hangzhou

      • Alibaba Cloud International Website: ap-southeast-1

    • Método 2: Defina o parâmetro account_type.

      • Alibaba Cloud China Website: Domestic

      • Alibaba Cloud International Website: International

  • Escreva os arquivos de configuração

    Crie um diretório de trabalho. Nele, crie os arquivos de configuração conforme descrito nas seções a seguir. Ajuste as definições do código conforme necessário.

    Defina o provider e a versão do Terraform

    Primeiramente, crie um arquivo de configuração chamado providers.tf. Copie o código abaixo para o arquivo para gerenciar todas as configurações do provider e as restrições de versão.

    terraform {
      required_providers {
        alicloud = {
          source  = "aliyun/alicloud"
          version = "1.266.0"  # TF versions are updated regularly. Check the official TF website for the latest version.
        }
      }
    }
    
    provider "alicloud" {
      region = "ap-southeast-1"
    }

    Defina as variáveis de recurso

    Para tornar o código mais reutilizável, declare variáveis de entrada e locais. Crie um arquivo de configuração chamado variables.tf e copie o seguinte código nele.

    # The access type for the site. Valid values: CNAME and NS.
    variable "site_type" {
      default = "NS"
    }
    # The billing method. The only valid value is Subscription.
    variable "payment_type" {
      default = "Subscription"
    }
    # The service coverage. Valid values:
    # domestic (Chinese mainland), overseas (Global, excluding Chinese mainland), global (Global).
    variable "coverage_name" {
      default = "overseas"
    }
    # Enable auto-renewal.
    variable "auto_pay" {
      default = "true"
    }
    # The plan name. Valid values:
    # entranceplan_intl (Entrance), basicplan_intl (Pro), vipplan_intl (Premium)
    variable "plan_name" {
      default = "entranceplan_intl"
    }
    # The site name. Replace this with your domain name.
    variable "site_name" {
      default = "aliyundoc.com"
    }
    # The domain name of your origin.
    variable "record_value" {
      default = "www.example.com"
    }
    # The origin port.
    variable "record_port" {
      default = "80"
    }
    # The DNS record name, which is the accelerated domain name.
    variable "record_name" {
      default = "_udp._sip.aliyundoc.com"
    }
    # The DNS record type.
    variable "record_type" {
      default = "SRV"
    }

    Defina os recursos

    Por fim, crie um arquivo de configuração chamado main.tf e copie o código abaixo nele. Este arquivo contém as principais declarações de recursos.

    # Create a plan
    resource "alicloud_esa_rate_plan_instance" "my_plan" {
      type         = var.site_type
      auto_renew   = "false"
      period       = "1"
      payment_type = var.payment_type
      coverage     = var.coverage_name
      auto_pay     = var.auto_pay
      plan_name    = var.plan_name
    }
    
    # Create a site
    resource "alicloud_esa_site" "my_site" {
      site_name   = var.site_name
      instance_id = alicloud_esa_rate_plan_instance.my_plan.id
      coverage    = var.coverage_name
      access_type = var.site_type
    }
    
    # Add a DNS record
    resource "alicloud_esa_record" "my_record" {
      data {
        value    = var.record_value
        weight   = "1"
        priority = "1"
        port     = var.record_port
      }
    
      ttl         = "100"
      record_name = var.record_name
      comment     = "This is a remark"
      site_id     = alicloud_esa_site.my_site.id
      record_type = var.record_type
    }

    Crie os recursos

    1. Acesse o diretório que contém os arquivos de configuração e execute o comando a seguir para inicializar o ambiente do Terraform.

      terraform init
    2. Execute o comando a seguir para validar a sintaxe e a configuração do Terraform.

      terraform validate
    3. Execute o comando a seguir para visualizar o plano de execução.

      terraform plan
    4. Execute o comando a seguir para aplicar a configuração.

      terraform apply
    5. Quando solicitado, insira yes para confirmar e aplicar as alterações.

    Verifique os resultados

    Visualize o plano

    1. Faça login no console do ESA e acesse a página Plan Management.

    2. O novo plano aparece na página Plan Management, conforme mostra a figura a seguir.

      image

    Visualize o site

    No console do ESA, escolha Websites. O novo site aparece conforme mostra a figura a seguir.

    image

    Visualize o registro DNS

    1. No console do ESA, escolha Websites e, na coluna Websites, clique em o site desejado.

    2. No painel de navegação, escolha Websites > Websites. O novo registro DNS aparece conforme mostra a figura a seguir.

      image

    (Opcional) Limpe os recursos

    Quando esses recursos não forem mais necessários, execute o comando terraform destroy.

    terraform destroy