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
Recurso para comprar un plan: alicloud_esa_rate_plan_instance
Recurso para agregar un sitio: alicloud_esa_site
Recurso para agregar un registro DNS: alicloud_esa_record
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:
entranceplanBasic Edition:
basicStandard Edition:
mediumPremium Edition:
high
-
Planes disponibles para las cuentas del sitio web internacional de Alibaba Cloud:
Entrance:
entranceplan_intlPro:
basicplan_intlPremium:
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-hangzhouSitio web internacional de Alibaba Cloud:
ap-southeast-1
-
Método 2: establezca el parámetro
account_type.Sitio web de Alibaba Cloud China:
DomesticSitio 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
-
Vaya al directorio que contiene los archivos de configuración y ejecute el siguiente comando para inicializar el entorno de terraform.
terraform init -
Ejecute el siguiente comando para validar la sintaxis y la configuración de terraform.
terraform validate -
Ejecute el siguiente comando para obtener una vista previa del plan de ejecución.
terraform plan -
Ejecute el siguiente comando para aplicar la configuración.
terraform apply Cuando el sistema lo solicite, introduzca
yespara confirmar y aplicar los cambios.
Comprobar los resultados
Consultar el plan
Inicie sesión en la consola de ESA y vaya a la página Plan Management.
-
En la página Plan Management aparecerá el nuevo plan, como se muestra en la siguiente figura.

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

Consultar el registro DNS
En la consola de ESA, elija Websites y, en la columna Websites, haga clic en el sitio correspondiente.
-
En el panel de navegación, elija . El nuevo registro DNS aparecerá como se muestra en la siguiente figura.

(Opcional) Limpiar los recursos
Cuando ya no necesite estos recursos, ejecute el comando terraform destroy.
terraform destroy