All Products
Search
Document Center

CDN:Gunakan Terraform untuk menambahkan dan mengonfigurasi nama domain CDN

Last Updated:Aug 22, 2026

Alibaba Cloud CDN telah terintegrasi dengan Terraform. Tutorial ini menjelaskan cara menggunakan Terraform untuk menambahkan nama domain yang dipercepat oleh CDN serta mengonfigurasi daftar putih alamat IP untuk nama domain tersebut.

Prasyarat

  • Sebelum menggunakan CDN, aktifkan CDN. Untuk informasi selengkapnya, lihat Aktifkan CDN.

  • Gunakan RAM user dengan izin minimum yang diperlukan untuk mengurangi risiko kebocoran Pasangan Kunci Akses. Untuk informasi tentang cara menyambungkan kebijakan yang diperlukan ke RAM user, lihat Buat RAM user dan Kelola izin RAM user. Contoh ini menggunakan kebijakan berikut:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "cdn:AddCdnDomain",
            "cdn:DescribeCdnDomainDetail",
            "cdn:DescribeDomainCertificateInfo",
            "cdn:ListTagResources",
            "cdn:DeleteCdnDomain",
            "cdn:BatchSetCdnDomainConfig",
            "cdn:DescribeCdnDomainConfigs",
            "cdn:DeleteSpecificConfig"
          ],
          "Resource": "*"
        }
      ]
    }
  • Persiapkan lingkungan Terraform. Anda dapat menggunakan salah satu metode berikut untuk menggunakan Terraform:

    • Gunakan Terraform di Terraform Explorer: Terraform Explorer adalah lingkungan runtime online tempat Anda dapat menggunakan Terraform tanpa perlu menginstalnya. Untuk informasi selengkapnya, lihat Terraform Explorer. Metode ini cocok untuk debugging cepat tanpa biaya tambahan.

    • Gunakan Terraform di Cloud Shell: Terraform telah dipra-instal di Cloud Shell dengan kredensial identitas yang sudah dikonfigurasi. Anda dapat langsung menjalankan perintah Terraform. Untuk informasi selengkapnya, lihat Buat resource dengan Terraform. Metode ini cocok untuk debugging cepat dengan biaya rendah.

    • Instal dan konfigurasikan Terraform di mesin lokal Anda: Metode ini cocok untuk lingkungan dengan konektivitas jaringan terbatas atau pengaturan pengembangan kustom. Untuk informasi selengkapnya, lihat Instal dan konfigurasikan Terraform di PC lokal.

Resource yang digunakan

Catatan

Beberapa resource dalam contoh ini dikenai biaya. Hapus atau batalkan langganan resource tersebut jika tidak lagi diperlukan.

Langkah 1: Tambahkan nama domain yang dipercepat

  1. Buat direktori kerja dan file bernama main.tf di dalam direktori tersebut. Lalu, salin konten berikut ke file main.tf:

    Catatan

    Nama domain dalam kode contoh berikut, seperti mydcdndomain-xxx.alicloud-provider.cn dan mycdndomain-xxx.alicloud-provider.cn, hanya berfungsi di lingkungan terkelola untuk menjalankan kode contoh dengan beberapa klik. Anda tidak dapat lolos verifikasi kepemilikan untuk nama domain tersebut. Untuk menjalankan tutorial ini di lingkungan lokal, ganti nilai domain_name dengan nama domain yang Anda miliki dan telah menyelesaikan verifikasi kepemilikannya.

    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    
    # Add a domain name.
    resource "alicloud_cdn_domain_new" "domain" {
      domain_name = "mycdndomain-${random_integer.default.result}.alicloud-provider.cn"
      cdn_type    = "download"
      scope       = "overseas"
      sources {
        content  = "myoss-${random_integer.default.result}.oss-rg-china-mainland.aliyuncs.com"
        type     = "oss"
        priority = "20"
        port     = 80
        weight   = "15"
      }
    }
  2. Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform:

    terraform init

    Jika informasi berikut dikembalikan, Terraform telah diinisialisasi:

    Initializing the backend...
    Initializing provider plugins...
    ...
    Terraform has been successfully initialized!
    ...
  3. Jalankan perintah berikut untuk menambahkan nama domain:

    terraform apply

    Saat eksekusi, masukkan yes saat diminta dan tekan Enter. Tunggu hingga perintah selesai. Jika muncul informasi berikut, nama domain telah ditambahkan.

    Catatan

    Jika muncul pesan error "code: 400, Owner verification of the root domain failed", artinya nama domain tersebut pertama kali ditambahkan ke sistem CDN. Anda harus memverifikasi kepemilikan domain tersebut seperti yang dijelaskan dalam Verifikasi kepemilikan nama domain.

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    
    Apply complete!  Resources: 2 added, 0 changed, 0 destroyed.

Langkah 2: Konfigurasikan aturan untuk nama domain yang dipercepat

  1. Tambahkan konten berikut ke file main.tf.

    # Configure an IP address whitelist for the domain name.
    resource "alicloud_cdn_domain_config" "config-ip" {
      domain_name   = alicloud_cdn_domain_new.domain.domain_name
      function_name = "ip_allow_list_set"
      function_args {
        arg_name  = "ip_list"
        arg_value = "192.168.0.1"
      }
    }
  2. Buat rencana eksekusi dan pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk mengonfigurasi IP address whitelist untuk nama domain:

    terraform apply

    Saat eksekusi, masukkan yes saat diminta dan tekan Enter. Tunggu hingga perintah selesai. Jika informasi berikut dikembalikan, aturan telah dikonfigurasi.

    Apply complete!  Resources: 1 added, 0 changed, 0 destroyed.

Periksa hasilnya

Jalankan perintah terraform show

Jalankan perintah berikut untuk mengkueri resource yang dibuat oleh Terraform:

terraform show
shell@Alicloud:~/cdn$ terraform show
# alicloud_cdn_domain_config.config-ip:
resource "alicloud_cdn_domain_config" "config-ip" {
    config_id     = "394085720977408"
    domain_name   = "xxx"
    function_name = "ip_allow_list_set"
    id            = "xxx:ip_allow_list_set:394085720977408"
    parent_id     = "0"
    status        = "success"
    function_args {
        arg_name  = "ip_list"
        arg_value = "192.168.0.1"
    }
}
# alicloud_cdn_domain_new.domain:
resource "alicloud_cdn_domain_new" "domain" {
    cdn_type          = "download"
    cname             = "xxx.com.w.cdngslb.com"
    domain_name       = "xxx.com"
    id                = "xxx.com"
    resource_group_id = "rg-acfmykd63gtpfpa"
    scope             = "overseas"
    status            = "online"
    certificate_config {
        cert_type                 = "cas"
        server_certificate_status = "off"
    }
    sources {
        content  = "xxx.oss-rg-china-mainland.aliyuncs.com"
        port     = 80
        priority = 20
        type     = "oss"
        weight   = 15
    }
}

Login ke Konsol CDN

Login ke Konsol CDN dan lihat daftar hitam/daftar putih alamat IP yang dikonfigurasi untuk nama domain yang ditambahkan.

Pada halaman manajemen domain target, klik Access Control di panel navigasi kiri lalu klik tab daftar hitam/daftar putih alamat IP. Jenisnya adalah daftar putih alamat IP, dan alamat IP 192.168.0.1 telah ditambahkan ke daftar putih.

Bersihkan sumber daya

Jika Anda tidak lagi memerlukan resource yang dibuat oleh Terraform, jalankan perintah berikut untuk melepasnya. Untuk informasi selengkapnya tentang perintah terraform destroy, lihat Perintah umum.

terraform destroy

Contoh

Kode contoh

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

# Add a domain name.
resource "alicloud_cdn_domain_new" "domain" {
  domain_name = "mycdndomain-${random_integer.default.result}.alicloud-provider.cn"
  cdn_type    = "download"
  scope       = "overseas"
  sources {
    content  = "myoss-${random_integer.default.result}.oss-rg-china-mainland.aliyuncs.com"
    type     = "oss"
    priority = "20"
    port     = 80
    weight   = "15"
  }
}

# Configure an IP address whitelist for the domain name.
resource "alicloud_cdn_domain_config" "config-ip" {
  domain_name   = alicloud_cdn_domain_new.domain.domain_name
  function_name = "ip_allow_list_set"
  function_args {
    arg_name  = "ip_list"
    arg_value = "192.168.0.1"
  }
}

Untuk contoh lainnya, kunjungi halaman quickstarts dan lihat contoh-contoh di folder layanan yang sesuai.