All Products
Search
Document Center

Container Registry:Buat instans Container Registry Enterprise Edition menggunakan Terraform

Last Updated:Mar 26, 2026

Topik ini menjelaskan cara membuat instans Container Registry Enterprise Edition menggunakan Terraform.

Catatan

Anda dapat menjalankan kode contoh dalam topik ini hanya dengan satu klik. Jalankan kode contoh

Prasyarat

  • Akun Alibaba Cloud, juga dikenal sebagai akun root, memiliki izin penuh atas semua resource. Menggunakan akun root secara langsung menimbulkan risiko keamanan jika kredensialnya bocor. Sebagai gantinya, gunakan RAM user dan buat Pasangan Kunci Akses untuk pengguna tersebut. Untuk informasi lebih lanjut, lihat Buat RAM user dan Buat Pasangan Kunci Akses.

  • Berikan izin AliyunContainerRegistryFullAccess kepada RAM user untuk mengelola Container Registry. Untuk informasi lebih lanjut tentang cara memberikan izin kepada RAM user, lihat Berikan izin kepada RAM user.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "cr:*",
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "bss:*",
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  • Persiapkan lingkungan runtime Terraform. Anda dapat menggunakan Terraform dengan salah satu cara berikut:

    • Gunakan Terraform di Terraform Explorer: Alibaba Cloud menyediakan Terraform Explorer, yaitu lingkungan online tempat Anda dapat menjalankan perintah Terraform. Metode ini cocok untuk debugging cepat dan mencoba Terraform tanpa biaya.

    • Buat resource dengan cepat menggunakan Terraform: Terraform telah dipra-instal di Cloud Shell dan kredensial identitas dikonfigurasi secara otomatis. Anda dapat langsung menjalankan perintah Terraform di Cloud Shell. Metode ini cocok untuk mengakses dan menggunakan Terraform dengan cepat, nyaman, dan berbiaya rendah.

    • Instal dan konfigurasi Terraform di mesin lokal Anda: Metode ini cocok untuk kasus penggunaan dengan koneksi jaringan yang buruk atau yang memerlukan lingkungan pengembangan kustom.

    Penting

    Pastikan versi Terraform Anda adalah v0.12.28 atau yang lebih baru. Untuk memeriksa versi saat ini, jalankan perintah terraform --version.

Prosedur

Contoh ini membuat instans Container Registry Enterprise Edition.

  1. Di direktori kerja baru, buat file konfigurasi bernama main.tf. File ini mendefinisikan resource yang akan dideploy. Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Wajib

    Deskripsi

    Contoh

    payment_type

    Tidak

    Metode penagihan untuk instans Container Registry Enterprise Edition.

    Subscription

    period

    Tidak

    Durasi langganan, dalam bulan. Nilai yang valid: 1, 2, 3, 6, 12, 24, 36, 48, dan 60. Untuk langganan tahunan, tentukan kelipatan 12.

    Catatan

    Jika Anda mengatur renewal_status ke AutoRenewal, nilai ini harus lebih besar dari 0. Jika tidak, perpanjangan otomatis gagal.

    1

    renew_period

    Tidak

    Periode perpanjangan otomatis dalam bulan. Untuk langganan tahunan, tentukan kelipatan 12.

    1

    renewal_status

    Tidak

    Status perpanjangan. Nilai yang valid:

    • AutoRenewal: perpanjangan otomatis.

    • ManualRenewal: perpanjangan manual.

    Nilai default adalah ManualRenewal.

    AutoRenewal

    instance_type

    Ya

    Jenis instans Container Registry Enterprise Edition. Nilai yang valid:

    • Basic: Edisi Dasar.

    • Advanced: Edisi Lanjutan.

    Advanced

    instance_name

    Ya

    Nama instans Container Registry Enterprise Edition.

    Contoh ini menggunakan variabel var.name.

    variable "region" {
      default = "cn-heyuan"
    }
    provider "alicloud" {
      region = var.region
    }
    variable "name" {
      default = "tf-example"
    }
    resource "alicloud_cr_ee_instance" "default" {
      payment_type   = "Subscription"              
      period         = 1                           
      renew_period   = 1                           
      renewal_status = "AutoRenewal"              
      instance_type  = "Advanced"                  
      instance_name  =  var.name                   
    }
  2. Jalankan perintah berikut untuk melakukan inisialisasi lingkungan runtime Terraform.

    terraform init

    Output berikut menunjukkan bahwa inisialisasi berhasil.

    Initializing the backend...
    
    Initializing provider plugins...
    - Finding latest version of hashicorp/alicloud...
    - Installing hashicorp/alicloud v1.234.0...
    - Installed hashicorp/alicloud v1.234.0 (signed by HashiCorp)
    
    Terraform has created a lock file .terraform.lock.hcl to record the provider
    selections it made above. Include this file in your version control repository
    so that Terraform can guarantee to make the same selections by default when
    you run "terraform init" in the future.
    
    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  3. Buat rencana eksekusi untuk melihat pratinjau perubahan.

    terraform plan
  4. Terapkan konfigurasi untuk membuat instans:

    terraform apply

    Saat diminta, masukkan yes dan tekan Enter. Output berikut menunjukkan bahwa instans telah dibuat.

    Plan: 1 to add, 0 to change, 0 to destroy.
    
    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
    
    alicloud_cr_ee_instance.default: Creating...
    alicloud_cr_ee_instance.default: Still creating... [10s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [20s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [31s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [41s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [51s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m1s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m11s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m21s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m31s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m41s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [1m51s elapsed]
    alicloud_cr_ee_instance.default: Still creating... [2m1s elapsed]
    alicloud_cr_ee_instance.default: Creation complete after 2m9s [id=cri-4bsyebi*****]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
  5. Verifikasi hasilnya.

    Terraform show

    Jalankan perintah berikut untuk melihat detail resource yang dikelola oleh Terraform:

    terraform show

    image

    Konsol registri kontainer

    Setelah instans dibuat, login ke Konsol Container Registry untuk melihat instans baru.image

Pembersihan resource

Penting

Terraform tidak dapat melepas instans berbasis langganan. Menjalankan terraform destroy hanya menghapus resource dari file state. Anda harus melepas instans tersebut secara manual di Konsol.

Contoh lengkap

Catatan

Anda dapat menjalankan kode contoh dalam topik ini hanya dengan satu klik. Jalankan kode contoh

Untuk contoh yang lebih lengkap, kunjungi folder khusus produk di Quickstarts. Untuk detail parameter, lihat Deskripsi parameter.

Kode contoh

variable "region" {
  default = "cn-heyuan"
}
provider "alicloud" {
  region = var.region
}
variable "name" {
  default = "tf-example"
}
resource "alicloud_cr_ee_instance" "default" {
  payment_type   = "Subscription"              
  period         = 1                           
  renew_period   = 1                           
  renewal_status = "AutoRenewal"               
  instance_type  = "Advanced"                  
  instance_name  =  var.name                   
}

Referensi