All Products
Search
Document Center

:Buat rencana, situs, dan rekaman DNS dengan Terraform

Last Updated:Jun 18, 2026

Setelah menghubungkan situs ke ESA, Anda perlu menambahkan rekaman DNS untuk mendaftarkan nama domain ke ESA. Hal ini memastikan bahwa nama domain yang dipercepat dapat di-resolve dan diakses. Topik ini menjelaskan cara menggunakan Terraform untuk menambahkan rekaman DNS tersebut.

Resources

Notes

  • Tipe rencana yang tersedia berbeda untuk akun Alibaba Cloud China Website dan Alibaba Cloud International Website.

    • Rencana yang tersedia untuk akun Alibaba Cloud China Website:

      • Free Edition: entranceplan

      • Basic Edition: basic

      • Standard Edition: medium

      • Premium Edition: high

    • Rencana yang tersedia untuk akun Alibaba Cloud International Website:

      • Entrance: entranceplan_intl

      • Pro: basicplan_intl

      • Premium: vipplan_intl

  • Saat ini, Anda tidak dapat membuat rencana Enterprise menggunakan Terraform. Untuk membeli rencana Enterprise, contact us.

  • Saat menggunakan Terraform untuk membuat situs, Anda dapat mengaitkannya dengan ID instans dari rencana Edisi Perusahaan yang sudah ada.

  • Saat menggunakan Terraform untuk membuat rencana, Anda harus mengonfigurasi provider Terraform sesuai dengan tipe akun Anda: Alibaba Cloud China Website atau Alibaba Cloud International Website.

    • Metode 1: Atur parameter region.

      • Alibaba Cloud China Website: cn-hangzhou

      • Alibaba Cloud International Website: ap-southeast-1

    • Metode 2: Atur parameter account_type.

      • Alibaba Cloud China Website: Domestic

      • Alibaba Cloud International Website: International

Write configuration files

Buat direktori kerja. Di dalam direktori tersebut, buat file konfigurasi seperti yang dijelaskan pada bagian berikut. Sesuaikan pengaturan kode sesuai kebutuhan.

Define the provider and Terraform version

Pertama, buat file konfigurasi bernama providers.tf. Salin kode berikut ke dalam file tersebut untuk mengelola semua konfigurasi provider dan batasan versi.

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

provider "alicloud" {
  region = "ap-southeast-1"
}

Define resource variables

Agar kode Anda lebih dapat digunakan kembali, deklarasikan variabel input dan lokal. Buat file konfigurasi bernama variables.tf dan salin kode berikut ke dalamnya.

# Tipe akses untuk situs. Nilai yang valid: CNAME dan NS.
variable "site_type" {
  default = "NS"
}
# Metode penagihan. Satu-satunya nilai yang valid adalah Subscription.
variable "payment_type" {
  default = "Subscription"
}
# Cakupan layanan. Nilai yang valid:
# domestic (daratan Tiongkok), overseas (Global, tidak termasuk daratan Tiongkok), global (Global).
variable "coverage_name" {
  default = "overseas"
}
# Aktifkan perpanjangan otomatis.
variable "auto_pay" {
  default = "true"
}
# Nama rencana. Nilai yang valid:
# entranceplan_intl (Entrance), basicplan_intl (Pro), vipplan_intl (Premium)
variable "plan_name" {
  default = "entranceplan_intl"
}
# Nama situs. Ganti dengan nama domain Anda.
variable "site_name" {
  default = "aliyundoc.com"
}
# Nama domain origin Anda.
variable "record_value" {
  default = "www.example.com"
}
# Port origin.
variable "record_port" {
  default = "80"
}
# Nama rekaman DNS, yaitu nama domain yang dipercepat.
variable "record_name" {
  default = "_udp._sip.aliyundoc.com"
}
# Tipe rekaman DNS.
variable "record_type" {
  default = "SRV"
}

Define resources

Akhirnya, buat file konfigurasi bernama main.tf dan salin kode berikut ke dalamnya. File ini berisi deklarasi resource utama.

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

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

# Tambahkan rekaman DNS
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
}

Create the resources

  1. Buka direktori yang berisi file konfigurasi Anda dan jalankan perintah berikut untuk menginisialisasi lingkungan Terraform.

    terraform init
  2. Jalankan perintah berikut untuk memvalidasi sintaksis dan konfigurasi Terraform.

    terraform validate
  3. Jalankan perintah berikut untuk melihat pratinjau rencana eksekusi.

    terraform plan
  4. Jalankan perintah berikut untuk menerapkan konfigurasi.

    terraform apply
  5. Saat diminta, masukkan yes untuk mengonfirmasi dan menerapkan perubahan.

Verify the results

View the plan

  1. Masuk ke Konsol ESA dan buka halaman Plan Management.

  2. Di halaman Plan Management, rencana baru muncul seperti pada gambar berikut.

    image

View the site

Di Konsol ESA, pilih Websites. Situs baru muncul seperti pada gambar berikut.

image

View the DNS record

  1. Di Konsol ESA, pilih Websites, lalu di kolom Website, klik situs target.

  2. Di panel navigasi, pilih DNS > Records. Rekaman DNS baru muncul seperti pada gambar berikut.

    image

(Optional) Clean up resources

Jika Anda tidak lagi memerlukan resource ini, jalankan perintah terraform destroy.

terraform destroy