Todos los productos
Search
Centro de documentos

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

Última actualización: Sep 09, 2026

Después de conectar un sitio a ESA, debe agregar un registro DNS para registrar el nombre de dominio en ESA. Esto garantiza que el nombre de dominio acelerado se pueda resolver y esté accesible. En este tema se describe cómo usar terraform para agregar un registro DNS.

Recursos

Notas

  • Los tipos de plan disponibles varían entre las cuentas del sitio web de Alibaba Cloud China y las del sitio web internacional de Alibaba Cloud.

    • Planes disponibles para las cuentas del sitio web de Alibaba Cloud China:

      • Free Edition: entranceplan

      • Basic Edition: basic

      • Standard Edition: medium

      • Premium Edition: high

    • Planes disponibles para las cuentas del sitio web internacional de Alibaba Cloud:

      • Entrance: entranceplan_intl

      • Pro: basicplan_intl

      • Premium: vipplan_intl

  • Actualmente no es posible crear un plan Enterprise mediante terraform. Para comprar un plan Enterprise, contáctenos.

  • Cuando crea un sitio con terraform, puede asociarlo con el ID de instancia de un plan Enterprise Edition existente.

  • Al crear un plan con terraform, debe configurar el proveedor de terraform según su tipo de cuenta: sitio web de Alibaba Cloud China o sitio web internacional de Alibaba Cloud.

    • Método 1: establezca el parámetro region.

      • Sitio web de Alibaba Cloud China: cn-hangzhou

      • Sitio web internacional de Alibaba Cloud: ap-southeast-1

    • Método 2: establezca el parámetro account_type.

      • Sitio web de Alibaba Cloud China: Domestic

      • Sitio web internacional de Alibaba Cloud: International

Escribir los archivos de configuración

Cree un directorio de trabajo. Dentro de ese directorio, cree los archivos de configuración que se describen a continuación. Ajuste la configuración del código según sus necesidades.

Definir el proveedor y la versión de Terraform

Primero, cree un archivo de configuración llamado providers.tf. Copie el siguiente código en el archivo para gestionar todas las configuraciones del proveedor y las restricciones de versión.

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"
}

Definir las variables de recursos

Para que el código sea más reutilizable, declare variables de entrada y locales. Cree un archivo de configuración llamado variables.tf y copie en él el siguiente código.

# 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"
}

Definir los recursos

Por último, cree un archivo de configuración llamado main.tf y copie en él el siguiente código. Este archivo contiene las declaraciones principales de los 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
}

Crear los recursos

  1. Vaya al directorio que contiene los archivos de configuración y ejecute el siguiente comando para inicializar el entorno de terraform.

    terraform init
  2. Ejecute el siguiente comando para validar la sintaxis y la configuración de terraform.

    terraform validate
  3. Ejecute el siguiente comando para obtener una vista previa del plan de ejecución.

    terraform plan
  4. Ejecute el siguiente comando para aplicar la configuración.

    terraform apply
  5. Cuando el sistema lo solicite, introduzca yes para confirmar y aplicar los cambios.

Comprobar los resultados

Consultar el plan

  1. Inicie sesión en la consola de ESA y vaya a la página Plan Management.

  2. En la página Plan Management aparecerá el nuevo plan, como se muestra en la siguiente figura.

    image

Consultar el sitio

En la consola de ESA, elija Websites. El nuevo sitio aparecerá como se muestra en la siguiente figura.

image

Consultar el registro DNS

  1. En la consola de ESA, elija Websites y, en la columna Websites, haga clic en el sitio correspondiente.

  2. En el panel de navegación, elija DNS > Records. El nuevo registro DNS aparecerá como se muestra en la siguiente figura.

    image

(Opcional) Limpiar los recursos

Cuando ya no necesite estos recursos, ejecute el comando terraform destroy.

terraform destroy