Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 29, 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 provedor 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 configurações do código conforme necessário.

Defina o provedor e a versão do Terraform

Primeiro, crie um arquivo de configuração chamado providers.tf. Copie o código a seguir para o arquivo a fim de gerenciar todas as configurações do provedor e restrições de versão.

terraform {
  required_providers {
    alicloud = {
      source  = "aliyun/alicloud"
      version = "1.266.0"
    }
  }
}

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 código a seguir para ele.

# 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 a seguir para ele. Esse 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. Na página Plan Management, o novo plano aparece, 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 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