Tous les produits
Search
Centre de documentation

:Créer un plan, un site et un enregistrement DNS avec Terraform

Dernière mise à jour :Aug 31, 2026

Une fois un site connecté à ESA, vous devez ajouter un enregistrement DNS afin d'enregistrer le nom de domaine auprès d'ESA. Cette étape garantit la résolution et l'accès au nom de domaine accéléré. Cette rubrique explique comment utiliser Terraform pour ajouter un enregistrement DNS.

Ressources

Notes

  • Les types de plans disponibles diffèrent selon qu'il s'agit d'un compte Alibaba Cloud China Website ou Alibaba Cloud International Website.

    • Plans disponibles pour les comptes Alibaba Cloud China Website :

      • Édition gratuite : entranceplan

      • Édition Basic : basic

      • Édition Standard : medium

      • Édition Premium : high

    • Plans disponibles pour les comptes Alibaba Cloud International Website :

      • Entrance : entranceplan_intl

      • Pro : basicplan_intl

      • Premium : vipplan_intl

  • La création d'un plan Enterprise via Terraform n'est pas prise en charge actuellement. Pour souscrire un plan Enterprise, contactez-nous.

  • Lors de la création d'un site avec Terraform, il est possible de l'associer à l'ID d'instance d'un plan Enterprise Edition existant.

  • Pour créer un plan avec Terraform, configurez le provider Terraform en fonction du type de votre compte : Alibaba Cloud China Website ou Alibaba Cloud International Website.

    • Méthode 1 : Définissez le paramètre region.

      • Alibaba Cloud China Website : cn-hangzhou

      • Alibaba Cloud International Website : ap-southeast-1

    • Méthode 2 : Définissez le paramètre account_type.

      • Alibaba Cloud China Website : Domestic

      • Alibaba Cloud International Website : International

Rédiger les fichiers de configuration

Créez un répertoire de travail. Dans ce répertoire, créez les fichiers de configuration décrits dans les sections suivantes. Ajustez les paramètres du code selon vos besoins.

Définir le provider et la version de Terraform

Commencez par créer un fichier de configuration nommé providers.tf. Copiez le code suivant dans ce fichier pour gérer toutes les configurations du provider ainsi que les contraintes de version.

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

Définir les variables de ressources

Afin de rendre votre code plus réutilisable, déclarez des variables d'entrée et locales. Créez un fichier de configuration nommé variables.tf et copiez-y le code suivant.

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

Définir les ressources

Enfin, créez un fichier de configuration nommé main.tf et copiez-y le code suivant. Ce fichier contient les déclarations principales des ressources.

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

Créer les ressources

  1. Accédez au répertoire contenant vos fichiers de configuration et exécutez la commande suivante pour initialiser l'environnement Terraform.

    terraform init
  2. Exécutez la commande suivante pour valider la syntaxe et la configuration Terraform.

    terraform validate
  3. Exécutez la commande suivante pour prévisualiser le plan d'exécution.

    terraform plan
  4. Exécutez la commande suivante pour appliquer la configuration.

    terraform apply
  5. À l'invite, saisissez yes pour confirmer et appliquer les modifications.

Vérifier les résultats

Consulter le plan

  1. Connectez-vous à la console ESA et accédez à la page Plan Management.

  2. Le nouveau plan apparaît sur la page Plan Management, comme illustré dans la figure suivante.

    image

Consulter le site

Dans la console ESA, choisissez Websites. Le nouveau site s'affiche, comme illustré dans la figure suivante.

image

Consulter l'enregistrement DNS

  1. Dans la console ESA, choisissez Websites, puis cliquez sur le site cible dans la colonne Websites.

  2. Dans le volet de navigation, choisissez Websites > Websites. Le nouvel enregistrement DNS s'affiche, comme illustré dans la figure suivante.

    image

(Facultatif) Nettoyer les ressources

Si ces ressources ne vous sont plus utiles, exécutez la commande terraform destroy.

terraform destroy