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 harus menggunakan Cloud Shell Editor, terminal Cloud Shell, dan Terraform CLI, yang sudah diinstal sebelumnya di Cloud Shell.
Sebelum memulai
Guna menyiapkan project untuk panduan memulai ini, selesaikan langkah-langkah berikut:
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Storage.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
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:
-
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.
Menentukan infrastruktur di file konfigurasi Terraform
Untuk menentukan infrastruktur yang ingin Anda sediakan di file konfigurasi Terraform, selesaikan langkah-langkah berikut:
Di Editor Cloud Shell, 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:
Untuk membuka terminal Cloud Shell, klik Open Terminal dari toolbar Cloud Shell Editor.
Di terminal Cloud Shell, tetapkan folder
terraform
sebagai direktori kerja saat ini:cd ~/terraform
Lakukan inisialisasi Terraform:
terraform init
Jika 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 Cloud Shell, 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 Cloud Shell Editor, klik kanan folder
terraform
di panel Explorer, lalu klik Delete.Saat diminta, klik OK untuk mengonfirmasi.
Untuk memverifikasi bahwa bucket dan objek telah dihapus, buka halaman Buckets di Konsol Google Cloud.
Langkah selanjutnya
- Lihat Resource Terraform yang tersedia untuk Cloud Storage.
- Lihat Resource Terraform untuk produk Google Cloud lainnya.