Saat mengembangkan aplikasi, Anda kemungkinan besar memerlukan arsitektur yang kompleks. Agar deployment lebih mudah direplikasi dan dipecahkan masalahnya, sebaiknya bagi konfigurasi menjadi template.
Template adalah file terpisah yang menentukan kumpulan resource. Anda dapat menggunakan kembali template di berbagai deployment, yang menciptakan konsistensi di seluruh deployment yang kompleks.
Anda dapat menggunakan Python atau Jinja2 untuk membuat template Deployment Manager. Sebaiknya gunakan template Python, karena Python memungkinkan fleksibilitas yang lebih besar dan lebih banyak fitur saat Anda menskalakan aplikasi.
Template Python
Jika Anda memilih untuk menulis template dalam Python, template Anda harus memenuhi persyaratan berikut:
Template harus ditulis dalam Python 3.x
Template harus menentukan metode yang disebut
GenerateConfig(context)
ataugenerate_config(context)
. Jika Anda menggunakan kedua nama metode dalam template yang sama, metodegenerate_config()
akan diprioritaskan.Objek
context
berisi metadata tentang deployment dan lingkungan Anda, seperti nama deployment, project saat ini, dan sebagainya. Anda akan menggunakan variabel khusus deployment ini di langkah-langkah berikutnya.Metode ini harus menampilkan kamus Python.
Memeriksa template contoh
Dari repositori contoh, buka vm-template.py
:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano vm-template.py # use your preferred text editor
Template ini menentukan virtual machine (VM) pertama dari contoh sebelumnya:
Buka template kedua, vm-template-2.py
, yang menentukan VM kedua:
Di kedua template, ganti MY_PROJECT dengan project ID Anda.
Mengimpor template
Setelah membuat template, Anda harus mengimpornya ke dalam konfigurasi. Buka two-vms.yaml
baru:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano two-vms.yaml # use your preferred text editor
File konfigurasi ini memiliki bagian imports
baru yang memanggil dua template VM, vm-template.py
dan vm-template-2.py
:
Catatan tentang nama resource
Saat Anda menggunakan template, nama resource ditentukan menggunakan kolom name
yang disediakan dalam template, bukan nama dalam file konfigurasi.
Misalnya, dalam hal ini, instance VM dibuat menggunakan nama dalam template, the-first-vm
dan the-second-vm
. Nilai vm-1
dan vm-2
,
yang ditentukan dalam konfigurasi, digunakan untuk memberi nama pembuatan instance template,
tetapi bukan nama resource.
Menyimpan konfigurasi dan men-deploynya
Untuk men-deploy konfigurasi, jalankan perintah ini:
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
Untuk melihat deployment, jalankan perintah ini:
gcloud deployment-manager deployments describe deployment-with-templates
Ke depannya: menggunakan beberapa template
Pada langkah berikutnya, Anda akan menggabungkan template sehingga konfigurasi hanya memanggil satu template untuk men-deploy semua resource.
Menghapus deployment
Sebelum melanjutkan, sebaiknya hapus deployment untuk menghindari tagihan. Anda tidak memerlukan deployment ini untuk langkah berikutnya. Jalankan perintah berikut untuk menghapus deployment:
gcloud deployment-manager deployments delete deployment-with-templates