Membuat skrip startup
Halaman ini menjelaskan cara membuat skrip startup untuk layanan web, lalu memvalidasi skrip.
Untuk memastikan bahwa pengaktifan layanan web tidak memerlukan intervensi manual, Anda harus membuat skrip startup.Skrip startup melakukan tugas-tugas berikut:
- Membaca metadata virtual machine (VM) dan menetapkan variabel lingkungan untuk metadata dengan awalan
CONNECTOR_ENV
. Setiap data yang diperlukan oleh konsumen diambil selama pembuatan VM dari Marketplace dan ditetapkan sebagai variabel lingkungan di docker. Variabel lingkungan ini kemudian dapat dibaca dan diproses dengan sesuai di aplikasi. - Memulai penampung docker yang berisi layanan web dengan variabel lingkungan yang sesuai.
Kode berikut adalah contoh skrip startup:
#!/bin/bash # 1. Fetch Metadata Keys metadata_keys_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/" metadata_keys=$(curl -H "Metadata-Flavor: Google" "$metadata_keys_url") # 2. Set Environment Variables for CONNECTOR_ENV Keys (with error handling) for key in $metadata_keys; do if [[ $key == CONNECTOR_ENV_* ]]; then metadata_value_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/$key" # Fetch value with error handling value=$(curl -H "Metadata-Flavor: Google" "$metadata_value_url" 2>/dev/null) if [[ -z "$value" ]]; then echo "Warning: No value found for key '$key'. Skipping." >&2 # Log the warning to stderr continue # Skip to the next iteration fi export "$key=$value" fi done # 3. Run Docker with Environment Variables sudo docker stop connector-service || true sudo docker run \ --name connector-service \ $(env | grep CONNECTOR_ENV_ | sed 's/=/="/;s/$/"/' | sed 's/^/-e /') \ -d -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT \ --restart=unless-stopped \ connector-container
Memvalidasi skrip startup
- Di instance VM, tambahkan metadata untuk port dan semua parameter lain yang diperlukan selama pembuatan VM.
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata=CONNECTOR_ENV_PORT=8081
- Edit VM dari UI dan tambahkan skrip startup yang disebutkan di bagian otomatisasi.
Anda juga dapat menggunakan perintah gcloud berikut:
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata-from-file startup-script=gcp-start.sh
- Setelah menambahkan skrip startup, gunakan ssh ke VM dan jalankan perintah berikut:
sudo google_metadata_script_runner startup
- Jalankan perintah berikut untuk memastikan bahwa penampung docker berjalan di port yang disebutkan.
sudo docker ps
- Jalankan perintah berikut untuk menghentikan dan menghapus layanan docker. Setelah pengujian, layanan tidak boleh berjalan di VM.
sudo docker rm -f connector-service
- Pelajari cara membuat skrip deployment VM.