Tablestore terintegrasi dengan Terraform, alat Infrastructure as Code (IaC) open source. Dengan Terraform, Anda dapat mendefinisikan dan menyediakan instans Tablestore secara terprogram, bukan melalui Konsol.
Topik ini mencakup penulisan konfigurasi Terraform, penerapannya untuk membuat instans, verifikasi hasil, dan pembersihan.
Jalankan kode contoh dari topik ini secara langsung di Terraform Explorer.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Pengguna RAM dengan izin minimum yang diperlukan. Untuk mengurangi risiko kebocoran Pasangan Kunci Akses Akun Alibaba Cloud Anda, gunakan pengguna RAM alih-alih akun root. Untuk informasi selengkapnya, lihat Buat pengguna RAM dan Berikan izin kepada pengguna RAM. Lampirkan kebijakan berikut ke pengguna RAM:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ots:GetInstance", "ots:BindInstance2Vpc", "ots:ListVpcInfoByInstance", "ots:UnbindInstance2Vpc", "ots:DeleteInstance", "ots:InsertInstance", "ots:UpdateInstance", "ots:ListInstance" ], "Resource": "*" } ] }Lingkungan runtime Terraform yang telah disiapkan melalui salah satu metode berikut:
Terraform Explorer (disarankan): Lingkungan runtime online yang disediakan oleh Alibaba Cloud. Tidak perlu instalasi. Paling cocok untuk eksperimen cepat tanpa biaya tambahan.
Cloud Shell: Terraform telah diprinstal dan kredensial telah dikonfigurasi sebelumnya. Paling cocok untuk sesi debugging cepat dengan biaya rendah.
Instalasi lokal: Instal dan konfigurasikan Terraform pada mesin lokal Anda. Paling cocok untuk lingkungan pengembangan kustom atau kondisi jaringan terbatas.
Sumber daya yang diperlukan
Konfigurasi ini menggunakan sumber daya Terraform berikut:
alicloud_ots_instance — Sebuah instans Tablestore.
Referensi argumen
Sumber daya alicloud_ots_instance mendukung argumen berikut:
| Argumen | Wajib | Deskripsi | Contoh |
|---|---|---|---|
name | Ya | Nama instans. Harus unik dalam wilayah tersebut. Menambahkan sufiks acak mencegah tabrakan nama saat rollback. | tf-example-12345 |
description | Tidak | Deskripsi instance. | tf-example |
accessed_by | Tidak | Jenis jaringan yang diizinkan mengakses instans. Nilai yang valid: Any, Vpc, ConsoleOrVpc. | Vpc |
tags | Tidak | Peta tag yang akan ditetapkan ke instans. | { Created = "TF" } |
Prosedur
Langkah 1: Tulis konfigurasi
Buat direktori kerja dan file bernama main.tf. Tambahkan konfigurasi berikut:
variable "name" {
default = "tf-example"
}
variable "region" {
default = "cn-hangzhou"
}
provider "alicloud" {
region = var.region
}
resource "random_integer" "default" {
min = 10000
max = 99999
}
# Buat instans Tablestore dengan sufiks acak untuk memastikan keunikan nama
resource "alicloud_ots_instance" "default" {
name = "${var.name}-${random_integer.default.result}"
description = var.name
accessed_by = "Vpc"
tags = {
Created = "TF"
For = "Building table"
}
}Sumber daya random_integer menambahkan sufiks acak ke nama instans. Hal ini mencegah tabrakan nama jika Anda perlu menghapus dan membuat ulang instans, karena nama instans Tablestore harus unik dalam suatu wilayah dan instans yang dihapus memerlukan waktu hingga benar-benar dilepas.
Langkah 2: Inisialisasi Terraform
Jalankan perintah berikut untuk mengunduh plugin provider yang diperlukan:
terraform initOutput yang diharapkan:
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.Langkah 3: Terapkan konfigurasi
Jalankan perintah berikut untuk membuat instans:
terraform applySaat diminta, ketik yes dan tekan Enter untuk mengonfirmasi. Output yang diharapkan:
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 4: Verifikasi hasil
Gunakan salah satu metode berikut untuk memastikan bahwa instans telah dibuat:
Opsi A: Jalankan terraform show
terraform showOutput menampilkan detail instans, termasuk nama, deskripsi, dan jenis akses jaringan.
Opsi B: Periksa Konsol Tablestore
Masuk ke Konsol Tablestore. Pada halaman All Instances, verifikasi bahwa instans baru muncul dalam daftar.
Pembersihan
Untuk menghapus instans dan semua sumber daya terkait yang dikelola oleh konfigurasi ini, jalankan:
terraform destroySaat diminta, ketik yes dan tekan Enter untuk mengonfirmasi. Output yang diharapkan:
Plan: 0 to add, 0 to change, 2 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
...
Destroy complete! Resources: 2 destroyed.Untuk informasi selengkapnya tentang terraform destroy dan perintah lainnya, lihat Perintah umum.
Contoh lainnya
Untuk contoh Terraform tambahan di berbagai layanan Alibaba Cloud, lihat repositori landing-with-terraform quickstarts.
FAQ
Bagaimana cara menghindari tabrakan nama dalam alur kerja multi-layanan?
Nama instans Tablestore harus unik dalam suatu wilayah, dan penghapusan instans tidak serta-merta membebaskan nama tersebut. Jika alur kerja Anda melakukan rollback setelah membuat instans Tablestore, menjalankan ulang dengan nama instans yang sama akan gagal karena instans sebelumnya mungkin masih dalam proses penghapusan.
Tambahkan sufiks acak atau ID auto-increment ke setiap nama instans sehingga setiap eksekusi menghasilkan nama yang unik. Kode contoh dalam topik ini telah melakukannya dengan sumber daya random_integer.