Saat mengembangkan aplikasi, Anda kemungkinan besar memerlukan arsitektur yang kompleks. Agar deployment lebih mudah direplikasi dan memecahkan masalah, sebaiknya Anda memecah konfigurasi menjadi template.
Template adalah file terpisah yang mendefinisikan sekumpulan resource. Anda dapat menggunakan kembali template di berbagai deployment, yang akan menciptakan konsistensi di seluruh deployment yang kompleks.
Anda dapat menggunakan Python atau Jinja2 untuk membuat template untuk Deployment Manager. Sebaiknya gunakan template Python karena Python memungkinkan fleksibilitas yang lebih besar dan lebih banyak fitur seiring skala aplikasi Anda.
Template Python
Jika Anda memilih untuk menulis template di 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 tersebut harus menampilkan kamus Python.
Memeriksa contoh template
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 mesin virtual (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 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 ditetapkan menggunakan kolom name
yang disediakan dalam template, bukan nama dalam file konfigurasi.
Misalnya, dalam kasus 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 merupakan nama resource.
Menyimpan konfigurasi Anda dan men-deploy-nya
Untuk men-deploy konfigurasi, jalankan perintah ini:
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
Untuk melihat deployment Anda, jalankan perintah ini:
gcloud deployment-manager deployments describe deployment-with-templates
Rencana ke depan: menggunakan beberapa template
Pada langkah berikutnya, Anda akan menggabungkan template sehingga konfigurasi hanya memanggil satu template untuk men-deploy semua resource.
Menghapus deployment Anda
Sebelum melanjutkan, sebaiknya Anda menghapus deployment untuk menghindari biaya. Anda tidak memerlukan deployment ini untuk langkah berikutnya. Jalankan perintah berikut untuk menghapus deployment:
gcloud deployment-manager deployments delete deployment-with-templates