All Products
Search
Document Center

Terraform:Sumber daya

Last Updated:Oct 16, 2025

Apa itu sumber daya

Dalam Terraform, sumber daya adalah elemen infrastruktur seperti Instance ECS atau Bucket OSS yang dapat dikonfigurasi menggunakan kode Terraform. Infrastruktur dunia nyata mencakup berbagai jenis sumber daya. Terraform menggunakan API dari setiap layanan Alibaba Cloud untuk menyebarkan sumber daya Anda, termasuk instance ECS, template penyebaran instance ECS, grup keamanan, jaringan VPC, aturan firewall, VPN, tabel rute, database, dan Server Load Balancer.

Sintaks deklarasi sumber daya

Sumber daya didefinisikan dalam file .tf. Disarankan untuk menempatkan sumber daya dengan tipe serupa dalam satu folder dan mendefinisikannya dalam file main.tf.

Dalam contoh ini, main.tf adalah file konfigurasi utama:

  • resource

    Blok resource mendeklarasikan satu objek infrastruktur.

  • resource_type

    Parameter resource_type mengidentifikasi tipe sumber daya yang akan dibuat. Tipe sumber daya ini bergantung pada provider yang dideklarasikan dalam blok penyedia Terraform. Penyedia adalah plugin yang menyediakan satu set tipe sumber daya.

  • resource_name

    Parameter resource_name adalah identitas sumber daya dalam folder konfigurasi saat ini. Ini bukan nama objek infrastruktur sebenarnya. Parameter resource_name harus unik di antara semua sumber daya dengan tipe yang sama dalam folder saat ini.

  • Parameter Sumber Daya

    Parameter sumber daya menggunakan ekspresi untuk mendeklarasikan properti suatu sumber daya. Beberapa parameter diperlukan saat pembuatan sumber daya, sedangkan yang lain bersifat opsional. Properti dapat digunakan untuk mendefinisikan fitur lanjutan untuk sumber daya tersebut.

Anda dapat menyertakan beberapa sumber daya dengan tipe yang sama atau berbeda dalam file konfigurasi Terraform yang sama. Sumber daya ini bahkan dapat mencakup beberapa penyedia.

Dalam contoh ini, blok sumber daya pertama mendeklarasikan jaringan VPC, dan blok kedua mendeklarasikan vSwitch. Keduanya berada dalam file main.tf yang sama. Contoh ini menunjukkan sumber daya VPC dengan tipe alicloud_vpc bernama main-vpc dan sumber daya vSwitch dengan tipe alicloud_vswitch bernama main-vswitch.

Semua parameter dalam blok alicloud_vpc bersifat opsional. Parameter cidr_block bersifat opsional karena memiliki nilai default. Jika Anda tidak secara eksplisit mendefinisikan parameter ini dalam file konfigurasi, penyedia atau backend layanan VPC akan menghasilkan nilai default untuknya.

Untuk blok alicloud_vswitch, vpc_id, cidr_block, dan zone_id adalah parameter yang diperlukan. Parameter lainnya bersifat opsional.

Perhatikan bahwa parameter sumber daya spesifik untuk tipe sumber daya. Artinya, parameter sangat bervariasi di antara tipe sumber daya yang berbeda. Sebagai contoh, alicloud_vpc mencakup parameter seperti vpc_name dan cidr_block, sedangkan alicloud_vswitch mencakup parameter seperti vswitch_name, cidr_block, zone_id, dan vpc_id.

Referensi parameter atribut

Untuk mengakses properti sumber daya dari blok sumber daya lain, gunakan format berikut: <resource_type>.<resource_name>.<attribute>.

Dalam contoh sebelumnya, vSwitch memerlukan ID VPC tempat ia dimiliki saat vSwitch dibuat. ID VPC adalah properti sumber daya komputasi dari blok alicloud_vpc. Ini berarti server menghasilkan ID VPC saat VPC dibuat. Blok sumber daya alicloud_vswitch menggunakan ID dari blok alicloud_vpc yang telah dibuat. Format referensinya adalah alicloud_vpc.main_vpc.id.

Perhatikan bahwa Anda hanya dapat menggunakan metode ini ketika sumber daya terkait didefinisikan dalam file di dalam folder konfigurasi utama yang sama.

Pertimbangan untuk definisi sumber daya

Saat mendefinisikan blok sumber daya, pertimbangkan faktor-faktor penting berikut:

  1. Nama Sumber Daya Harus Unik

    Sumber daya yang dideklarasikan diidentifikasi oleh tipe dan namanya dalam folder konfigurasi saat ini. Oleh karena itu, nama sumber daya harus unik dalam folder konfigurasinya.

  2. Tipe Sumber Daya Tidak Dapat Disesuaikan

    Tipe sumber daya adalah kata kunci yang terkait dengan penyedia dan tidak dapat disesuaikan. Bucket OSS dikaitkan dengan penyedia Alibaba Cloud dan didefinisikan oleh kata kunci alicloud_oss_bucket. Definisi lain apa pun untuk Bucket OSS akan menyebabkan kesalahan saat menjalankan perintah terraform plan atau terraform apply.

  3. Semua Parameter Konfigurasi Harus Disertakan dalam Tubuh Blok Sumber Daya

    Elemen infrastruktur dan properti terkaitnya didefinisikan dalam blok sumber daya, yaitu di antara tanda kurung kurawal ({}).

    Saat menjalankan perintah Terraform, pesan kesalahan berikut muncul:image

  4. Semua Parameter yang Diperlukan Harus Diatur

    Jika Anda tidak mendefinisikan semua parameter yang diperlukan dalam konfigurasi, perintah terraform plan dan terraform apply akan gagal.

    Saat menjalankan perintah Terraform, pesan kesalahan berikut muncul:image