Salah satu keuntungan menggunakan template adalah kemampuan untuk membuat dan menentukan properti template kustom. Properti template adalah variabel arbitrer yang Anda tentukan dalam file template. Setiap file konfigurasi atau file template yang menggunakan template yang dimaksud dapat memberikan nilai untuk properti template tanpa mengubah template secara langsung. Tindakan ini memungkinkan Anda memisahkan properti sehingga Anda dapat mengubah nilai properti untuk setiap konfigurasi unik tanpa memperbarui template yang mendasarinya.
Misalnya, baris berikut menentukan properti template di URL jenis mesin:
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
Dalam konfigurasi yang menggunakan template ini, Anda dapat menetapkan nilai zone
di bagian properties
template:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager akan tahu cara meneruskan nilai zone
ke template
yang mendasarinya.
Sebelum memulai
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line`gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
- Memahami cara membuat template dasar.
- Memahami cara membuat konfigurasi
Membuat properti template
Untuk membuat properti template:
Jinja
Di Jinja, tentukan properti menggunakan sintaksis berikut:
{{ properties["PROJECT_NAME"] }}
Contoh:
Python
Di Python, tentukan properti menggunakan sintaksis berikut:
context.properties["PROPERTY_NAME"]
Contoh:
Untuk contoh lengkap Python, lihat repositori GitHub Deployment Manager.
Menetapkan nilai untuk properti template pada konfigurasi tingkat atas
Di konfigurasi level atas, Anda dapat menetapkan nilai untuk properti template menggunakan sintaksis:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Anda harus menetapkan nilai untuk semua properti template dalam template tersebut. Misalnya,
jika sebuah template memiliki properti template zone
, image
, network
, Anda harus
menentukan nilai untuk semua properti tersebut dalam konfigurasi tingkat atas.
Jika properti template tertentu memiliki nilai default, pertimbangkan untuk menggunakan skema untuk menetapkan nilai default ini. Properti template dengan nilai default dapat dihilangkan dari konfigurasi level atas jika nilai default sesuai untuk deployment.
Menetapkan nilai untuk properti template pada command line
Deployment Manager menawarkan kemampuan untuk menetapkan nilai-nilai ini secara langsung di Google Cloud CLI, bukan memberikan nilai untuk properti template dalam file induk yang mengimpor template. Anda tidak perlu membuat file YAML level teratas. Deployment Manager akan otomatis membuat konfigurasi level teratas untuk deployment Anda berdasarkan informasi yang ada dalam permintaan Anda.
Misalnya, anggap Anda memiliki template berikut yang memiliki properti template bernama zone
:
Dengan Google Cloud CLI, Anda dapat meneruskan file template ini secara langsung dan memberikan nilai untuk properti template Anda di command line. Misalnya, permintaan berikut meneruskan template dan menentukan properti
zone
langsung di command line:
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
Perlu diperhatikan bahwa:
Semua nilai diuraikan sebagai nilai YAML. Misalnya,
version: 3
diteruskan sebagai bilangan bulat. Jika ingin menentukannya sebagai string, tempatkan tanda kutip tunggal yang di-escape di sekitar nilai,version: \'3\'
.Nilai boolean tidak peka huruf besar/kecil, sehingga
TRUE
,true
, danTrue
diperlakukan sama.Anda harus meneruskan semua properti wajib yang ditentukan oleh template. Anda tidak dapat memberikan subset properti saja. Jika properti tertentu memiliki nilai default, Anda dapat menghilangkan properti ini dari command line.
Untuk menentukan beberapa properti, berikan key:value pair yang dipisahkan koma. Tidak masalah dalam urutan apa pun Anda menentukan pasangan tersebut. Contoh:
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
Setelah menjalankan perintah ini, Deployment Manager akan membuat deployment menggunakan template yang Anda berikan. Anda dapat mengonfirmasi bahwa deployment telah dibuat menggunakan Google Cloud Console atau gcloud CLI. Untuk informasi tentang cara melihat deployment, baca Melihat manifes.
Langkah selanjutnya
- Isi informasi tentang project dan deployment Anda menggunakan variabel lingkungan.
- Tambahkan template secara permanen ke project Anda sebagai jenis komposit.
- Simpan template secara eksternal untuk dibagikan kepada orang lain.