Dalam panduan memulai ini, Anda akan membuat file konfigurasi Terraform yang menyediakan bucket penyimpanan dan mengupload objek sample_file.txt
ke bucket tersebut. Untuk menyelesaikan panduan memulai ini, Anda akan menggunakan shell dan terminal lokal atau Cloud Shell Editor dan terminal Cloud Shell. Anda juga akan menggunakan Terraform CLI, yang sudah diinstal sebelumnya di Cloud Shell.
Sebelum memulai
Guna menyiapkan project untuk panduan memulai ini, selesaikan langkah-langkah berikut:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Cloud Storage.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Cloud Storage.
Membuat struktur folder dan file konfigurasi Terraform
Untuk membuat file konfigurasi Terraform dan yang akan Anda upload sebagai objek ke Cloud Storage, lakukan langkah-langkah berikut:
Cloud Shell
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
- Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
- Di terminal Cloud Shell, tetapkan direktori
beranda sebagai direktori aktif:
cd
- Buat folder baru bernama
terraform
:
mkdir terraform
- Luncurkan Cloud Shell Editor dengan mengklik Open Editor di toolbar jendela Cloud Shell.
- Di panel Explorer, klik kanan folder
terraform
, lalu klik New File. - Masukkan
main.tf
sebagai nama file, lalu klik OK. - Di panel Explorer, klik kanan folder
terraform
, lalu klik New File. - Masukkan
sample_file.txt
sebagai nama file, lalu klik OK.
Shell lokal
- Jika Anda belum melakukannya,
instal dan konfigurasikan Terraform.
Pastikan Anda menginstal dan
melakukan inisialisasi Google Cloud CLI.
Secara default, Terraform membaca konfigurasi yang dibuat oleh Google Cloud CLI dan men-deploy resource yang nantinya Anda tentukan ke project Google Cloud CLI yang aktif.
- Di terminal Anda, tetapkan direktori
beranda sebagai direktori aktif:
cd
- Buat folder baru bernama
terraform
:
mkdir terraform
- Di editor teks pilihan Anda, buat file baru bernama
main.tf
di folderterraform
. - Di editor teks pilihan Anda, buat file baru bernama
sample_file.txt
di folderterraform
.
Menentukan infrastruktur di file konfigurasi Terraform
Untuk menentukan infrastruktur yang ingin Anda sediakan di file konfigurasi Terraform, selesaikan langkah-langkah berikut:
Buka file
main.tf
.Salin contoh berikut ke file
main.tf
.# Create new storage bucket in the US # location with Standard Storage resource "google_storage_bucket" "static" { name = "BUCKET_NAME" location = "US" storage_class = "STANDARD" uniform_bucket_level_access = true } # Upload a text file as an object # to the storage bucket resource "google_storage_bucket_object" "default" { name = "OBJECT_NAME" source = "OBJECT_PATH" content_type = "text/plain" bucket = google_storage_bucket.static.id }
Ganti:
BUCKET_NAME dengan nama bucket yang ingin Anda buat. Contoh,
my-bucket
.OBJECT_NAME dengan nama objek yang ingin Anda upload. Untuk panduan memulai ini, masukkan nama
sample_file.txt
.OBJECT_PATH dengan jalur ke objek yang ingin Anda upload. Untuk panduan memulai ini, masukkan jalur
~/terraform/sample_file.txt
.
Simpan file
main.tf
.
Melakukan inisialisasi direktori kerja yang berisi file konfigurasi Terraform
Untuk menginisialisasi Terraform dan direktori yang berisi file konfigurasi Terraform, lakukan langkah-langkah berikut:
Di terminal, tetapkan folder
terraform
sebagai direktori kerja saat ini:cd ~/terraform
Lakukan inisialisasi Terraform:
terraform init
Jika Anda menggunakan Cloud Shell dan diminta untuk memberikan otorisasi pada Cloud Shell, klik Authorize.
Terraform menginisialisasi direktori kerja. Jika berhasil menginisialisasi direktori kerja, Terraform akan menampilkan output yang mirip dengan berikut ini:
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.
Melihat pratinjau rencana eksekusi
Rencana eksekusi Terraform didasarkan pada konfigurasi Terraform dan menunjukkan perubahan yang direncanakan oleh Terraform pada infrastruktur dan layanan Cloud Storage.
Lihat rencana eksekusi Terraform:
terraform plan
Contoh output:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_storage_bucket.static will be created
+ resource "google_storage_bucket" "static" {
+ force_destroy = false
+ id = (known after apply)
+ location = "US"
+ name = "my-bucket"
+ project = "my-project"
+ public_access_prevention = (known after apply)
+ self_link = (known after apply)
+ storage_class = "STANDARD"
+ uniform_bucket_level_access = true
+ url = (known after apply)
+ versioning {
+ enabled = (known after apply)
}
+ website {
+ main_page_suffix = (known after apply)
+ not_found_page = (known after apply)
}
}
# google_storage_bucket_object.default will be created
+ resource "google_storage_bucket_object" "default" {
+ bucket = (known after apply)
+ content_type = "text/plain"
+ crc32c = (known after apply)
+ detect_md5hash = "different hash"
+ id = (known after apply)
+ kms_key_name = (known after apply)
+ md5hash = (known after apply)
+ media_link = (known after apply)
+ name = "sample_file.txt"
+ output_name = (known after apply)
+ self_link = (known after apply)
+ source = "sample_file.txt"
+ storage_class = (known after apply)
}
Plan: 2 to add, 0 to change, 0 to destroy.
Menerapkan perubahan yang diusulkan dalam rencana eksekusi
Untuk menerapkan perubahan di file konfigurasi Terraform, selesaikan langkah-langkah berikut:
Terapkan perubahan dari rencana eksekusi ke infrastruktur Cloud Storage dengan perintah berikut. Saat Anda menerapkan perubahan, Terraform akan membuat bucket penyimpanan dan mengupload
sample_file.txt
ke bucket tersebut.terraform apply
Contoh output:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # google_storage_bucket.static will be created + resource "google_storage_bucket" "static" { + force_destroy = false + id = (known after apply) + location = "US" + name = "my-bucket" + project = "my-project" + public_access_prevention = (known after apply) + self_link = (known after apply) + storage_class = "STANDARD" + uniform_bucket_level_access = true + url = (known after apply) + versioning { + enabled = (known after apply) } + website { + main_page_suffix = (known after apply) + not_found_page = (known after apply) } } # google_storage_bucket_object.default will be created + resource "google_storage_bucket_object" "default" { + bucket = (known after apply) + content_type = "text/plain" + crc32c = (known after apply) + detect_md5hash = "different hash" + id = (known after apply) + kms_key_name = (known after apply) + md5hash = (known after apply) + media_link = (known after apply) + name = "sample_file.txt" + output_name = (known after apply) + self_link = (known after apply) + source = "sample_file.txt" + storage_class = (known after apply) } Plan: 2 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:
Ketik
yes
dan tekan Enter.Jika berhasil, Terraform akan menampilkan output yang mirip dengan berikut ini:
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Melihat bucket penyimpanan dan objek yang diupload
Di Konsol Google Cloud, buka halaman Buckets Cloud Storage.Bucket baru yang berisi objek sample_file.txt
akan muncul. Perhatikan bahwa
resource mungkin memerlukan waktu beberapa menit untuk disediakan setelah Anda menjalankan
terraform apply
.
Membersihkan project
Untuk menghindari timbulnya biaya yang tidak terduga dari resource Google Cloud yang Anda buat selama panduan memulai ini, selesaikan langkah-langkah berikut untuk membersihkan resource:
Di terminal, tetapkan folder
terraform
sebagai direktori kerja saat ini:cd ~/terraform
Hapus resource Cloud Storage yang Anda buat berdasarkan file konfigurasi Terraform:
terraform destroy
Jika berhasil, Terraform akan menampilkan output yang mirip dengan berikut ini:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: - destroy Terraform will perform the following actions: # google_storage_bucket.static will be destroyed - resource "google_storage_bucket" "static" { - default_event_based_hold = false -> null - force_destroy = false -> null - id = "my-bucket" -> null - labels = {} -> null - location = "US" -> null - name = "" -> null - project = "example-project" -> null - public_access_prevention = "inherited" -> null - requester_pays = false -> null - self_link = "https://www.googleapis.com/storage/v1/b/cbonnie-bucket-9" -> null - storage_class = "STANDARD" -> null - uniform_bucket_level_access = true -> null - url = "gs://BUCKET_NAME" -> null } # google_storage_bucket_object.default will be destroyed - resource "google_storage_bucket_object" "default" { - bucket = "my-bucket" -> null - content_type = "text/plain" -> null - crc32c = "yZRlqg==" -> null - detect_md5hash = "XrY7u+Ae7tCTyyK7j1rNww==" -> null - event_based_hold = false -> null - id = "my-bucket-sample_file.txt" -> null - md5hash = "XrY7u+Ae7tCTyyK7j1rNww==" -> null - media_link = "https://storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/sample_file.txt?generation=1675800386233102&alt=media" -> null - metadata = {} -> null - name = "sample_file.txt" -> null - output_name = "sample_file.txt" -> null - self_link = "https://www.googleapis.com/storage/v1/b/BUCKET_NAME/o/sample_file.txt" -> null - source = "sample_file.txt" -> null - storage_class = "STANDARD" -> null - temporary_hold = false -> null } 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:
Ketik
yes
dan tekan Enter. Jika berhasil, Terraform akan menampilkan output yang mirip dengan berikut ini:Destroy complete! Resources: 2 destroyed.
Di terminal, hapus folder
terraform
.rm -rf ~/terraform
Untuk memverifikasi bahwa bucket dan objek telah dihapus, buka halaman Buckets di Konsol Google Cloud.
Langkah berikutnya
- Lihat Resource Terraform yang tersedia untuk Cloud Storage.
- Lihat Resource Terraform untuk produk Google Cloud lainnya.