Buat dan jalankan skrip shutdown yang menjalankan perintah tepat sebelum instance virtual machine (VM) dihentikan atau dimulai ulang. Hal ini berguna jika Anda mengandalkan skrip otomatis untuk memulai dan mematikan instance, sehingga instance memiliki waktu untuk membersihkan atau melakukan tugas, seperti mengekspor log, atau menyinkronkan dengan sistem lain.
Skrip shutdown sangat berguna untuk VM dalam grup instance terkelola dengan autoscaler. Jika autoscaler menghentikan VM dalam grup, skrip shutdown akan berjalan sebelum VM berhenti dan skrip shutdown akan melakukan tindakan apa pun yang Anda tentukan. Skrip ini berjalan selama periode shutdown terbatas sebelum VM berhenti. Misalnya, skrip shutdown Anda mungkin menyalin data yang diproses ke Cloud Storage atau mencadangkan log apa pun.
Skrip shutdown memiliki fungsi yang sangat mirip dengan skrip startup. Banyak dokumentasi untuk skrip startup juga berlaku untuk skrip shutdown.
Untuk tugas shutdown dan mulai ulang, VM selalu menjalankan skrip shutdown sebagai berikut:
- Untuk VM Linux, dengan menggunakan pengguna
root
. - Untuk VM Windows, dengan menggunakan akun
System
.
Sebelum memulai
- Pelajari Skrip startup.
- Pahami apa itu server metadata.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
- Semua izin yang diperlukan untuk membuat instance
compute.instances.setMetadata
pada instance- Skrip shutdown memiliki waktu terbatas untuk selesai dijalankan sebelum instance berhenti:
- On-demand instance: 90 detik setelah Anda menghentikan atau menghapus instance
- Preemptible instance: 30 detik setelah preemption instance dimulai
- Compute Engine menjalankan skrip shutdown hanya berdasarkan upaya terbaik. Dalam kasus yang jarang terjadi, Compute Engine tidak dapat menjamin bahwa skrip shutdown akan selesai.
- Di Windows, Local Group Policy digunakan untuk meluncurkan skrip shutdown.
- Paket penginstalan mengonfigurasi setelan Local Group Policy
Computer Configuration/Windows Setting/Scripts (Startup/Shutdown)
untuk meluncurkan skrip setelah penonaktifan sistem.
- Paket penginstalan mengonfigurasi setelan Local Group Policy
- Saat instance dihentikan karena
permintaan
instances.delete
atau permintaaninstances.stop
ke API. - Saat Compute Engine menghentikan preemptible instance sebagai bagian dari proses preemption.
- Saat instance dihentikan melalui permintaan ke sistem operasi
tamu, seperti
sudo shutdown
atausudo reboot
. - Saat Anda menghentikan instance secara manual melalui Konsol Google Cloud atau alat
gcloud compute
. - Menyalin skrip ke file lokal dalam instance.
- Menetapkan izin pada file agar file tersebut dapat dieksekusi.
- Menjalankan file saat instance dihentikan.
Buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Advanced options.
Luaskan Management, dan lakukan tindakan berikut:
- Di bagian Metadata, klik Add item.
- Di kolom Key, masukkan
shutdown-script
untuk kunci metadata. - Di kolom Value, tambahkan konten skrip shutdown Anda.
Lanjutkan dengan proses pembuatan VM.
shutdown-script
: Menyediakan konten skrip shutdown secara langsung dengan kunci ini. Dengan Google Cloud CLI, Anda dapat memberikan jalur ke file skrip shutdown, menggunakan flag--metadata-from-file
dan kunci metadatashutdown-script
.shutdown-script-url
: Menyediakan URL Cloud Storage ke file skrip shutdown dengan kunci ini.Menghubungkan ke instance dan menjalankan perintah berikut:
sudo journalctl -u google-shutdown-scripts.service
Melihat output melalui port serial 1 di Konsol Google Cloud dan memeriksa peristiwa
google_metadata_script_runner
.Desktop IAP dari workstation Windows. Untuk mengetahui informasi selengkapnya, lihat repositori GoogleCloudPlatform/iap-desktop di GitHub.
Port serial 1 di Konsol Google Cloud. Untuk informasi selengkapnya, lihat Melihat output port serial.
Log Aplikasi Penampil Acara Windows.
Desktop IAP dari workstation Windows. Untuk mengetahui informasi selengkapnya, lihat repositori GoogleCloudPlatform/iap-desktop di GitHub.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Izin yang diperlukan untuk langkah ini
Untuk melakukan tugas ini, Anda harus memiliki izin berikut:
Spesifikasi
Batasan
Ada beberapa batasan yang perlu diperhatikan saat menggunakan skrip shutdown:
Menghentikan pemanggilan skrip
Skrip shutdown dipicu oleh Peristiwa konfigurasi lanjutan dan antarmuka daya (ACPI) tertentu, seperti mulai ulang atau berhenti. Ada banyak cara untuk memulai ulang atau menghentikan instance, tetapi hanya beberapa cara yang dapat memicu skrip shutdown agar berjalan. Skrip shutdown dijalankan sebagai bagian dari tindakan berikut:
Skrip shutdown tidak akan berjalan jika instance direset menggunakan
instances().reset
.Skrip shutdown dapat berupa jenis file apa pun. Jika ada skrip shutdown yang muncul, Compute Engine akan:
Misalnya, Anda dapat menyediakan skrip Python alih-alih skrip bash. Perlu diingat bahwa Compute Engine menjalankan skrip kata demi kata, apa pun jenis skripnya.
Untuk menjalankan skrip yang bukan merupakan bash, tambahkan baris shebang di bagian atas file untuk memberi tahu sistem operasi mana yang akan digunakan penafsir. Misalnya, untuk skrip Python, Anda dapat menambahkan baris Shebang seperti:
#!/usr/bin/python
Menghentikan waktu eksekusi skrip
Sebelum instance dihentikan atau dimulai ulang, skrip shutdown memiliki jangka waktu terbatas untuk dijalankan. Selama periode ini, Compute Engine akan mencoba menjalankan skrip shutdown Anda. Jika skrip membutuhkan waktu lebih lama dari jangka waktu ini untuk diselesaikan, instance akan otomatis berhenti dan semua tugas yang berjalan akan berakhir. Jika Anda mematikan atau memulai ulang instance dengan membuat permintaan ke sistem operasi tamu menggunakan perintah
sudo shutdown
, batas ini tidak akan berlaku.Durasi periode shutdown berbeda-beda bergantung pada jenis instance. Preemptible instance memiliki periode shutdown yang lebih singkat daripada instance biasanya. Untuk mengetahui informasi selengkapnya tentang batas waktu shutdown pada setiap jenis instance, lihat Periode shutdown.
Secara umum, skrip shutdown Anda harus selesai berjalan dalam periode shutdown agar sistem operasi memiliki waktu untuk menyelesaikan proses shutdown dan menghapus buffer ke disk.
Menggunakan skrip shutdown lokal
Skrip shutdown lokal adalah skrip yang ada di komputer lokal Anda. Teruskan skrip shutdown lokal sebagai file atau dengan memberikan kontennya secara langsung ke Compute Engine.
Skrip shutdown dapat melakukan tindakan sebanyak yang Anda butuhkan, tetapi jika Anda meneruskan file secara lokal, skrip Anda tidak boleh melebihi batas panjang nilai metadata sebesar 256 KB. Untuk menggunakan skrip yang melebihi batas panjang, simpan file Anda di Cloud Storage. Lihat Menggunakan skrip shutdown dari Cloud Storage untuk informasi lebih lanjut.
Memberikan file skrip shutdown
Anda hanya dapat meneruskan file skrip shutdown lokal melalui alat command line
gcloud
.gcloud
Untuk meneruskan file skrip shutdown lokal, berikan flag
--metadata-from-file
, diikuti dengan pasangan kunci metadata,shutdown-script=PATH/TO/FILE
, denganPATH/TO/FILE
sebagai jalur relatif ke skrip shutdown. Contoh:gcloud compute instances create example-instance \ --metadata-from-file shutdown-script=examples/scripts/install.sh
Terraform
Untuk menentukan skrip shutdown secara langsung, gunakan resource
google_compute_instance
dengan jalur ke skrip shutdown di metadata.Menyediakan konten skrip shutdown secara langsung
Atau, Anda dapat meneruskan konten skrip shutdown secara langsung.
Konsol
Di Konsol Google Cloud, tentukan skrip shutdown secara langsung menggunakan kunci metadata
shutdown-script
:gcloud
Dengan menggunakan Google Cloud CLI, gunakan flag
--metadata
untuk memberikan isi skrip shutdown Anda, diikuti dengan pasangan kuncishutdown-script=CONTENTS
, denganCONTENTS
sebagai konten skrip shutdown Anda.gcloud compute instances create example-instance --metadata shutdown-script="#! /bin/bash > # Shuts down Apache server > /etc/init.d/apache2 stop"
Terraform
Untuk menentukan skrip shutdown secara langsung, gunakan resource
google_compute_instance
dengan skrip shutdown di metadata.REST
Di API, berikan skrip shutdown sebagai bagian dari properti metadata dalam permintaan saat Anda membuat instance. Gunakan
shutdown-script
sebagai kunci metadata:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances {... "metadata": { "items": [ { "key": "shutdown-script", "value": "#! /bin/bash\n\n# Shuts down Apache server\n/etc/init.d/apache2 stop" } ] }... }
Menyediakan skrip shutdown pada instance Windows
Jalankan skrip shutdown pada instance Windows menggunakan kunci metadata khusus Windows berikut. Pilih dari salah satu tombol khusus yang tercantum di bawah. Setiap kunci harus cocok dengan jenis skrip yang ingin dijalankan.
Anda dapat menentukan beberapa skrip shutdown dengan meneruskan kunci yang berbeda ke instance, tetapi setiap kunci hanya dapat ditentukan sekali per virtual machine.
Kunci berikut dapat digunakan dengan skrip shutdown lokal, menggunakan petunjuk yang sama di atas.
Skrip shutdown cmd
Skrip shutdown bat
Skrip shutdown ps1
windows-shutdown-script-cmd
windows-shutdown-script-bat
windows-shutdown-script-ps1
Menggunakan skrip shutdown dari Cloud Storage
Anda dapat menyimpan dan menggunakan skrip shutdown dari Cloud Storage. Ikuti petunjuk dalam dokumentasi Skrip startup, tetapi ganti
startup-script-url
denganshutdown-script-url
.Untuk instance Windows, ganti
windows-startup-script-url
denganwindows-shutdown-script-url
.Menerapkan skrip shutdown ke instance yang sedang berjalan
Untuk menambahkan skrip shutdown ke instance yang sedang berjalan, ikuti petunjuk dalam dokumentasi Menerapkan skrip startup ke instance yang berjalan, tetapi ganti kunci metadata dengan salah satu kunci berikut:
Melihat output skrip shutdown
Linux
Anda dapat melihat output dari skrip shutdown Linux dengan melakukan salah satu hal berikut:
Windows
Lihat output dari skrip shutdown Windows Server menggunakan salah satu dari yang berikut dan memeriksa peristiwa
GCEMetadataScripts
:Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-