Untuk setiap deployment Anda, Deployment Manager akan membuat variabel lingkungan standar yang berisi informasi yang disimpulkan dari deployment Anda. Gunakan variabel lingkungan ini dalam template Python atau Jinja2 untuk mendapatkan informasi tentang project atau deployment Anda.
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.
- Pahami cara membuat template dasar.
- Memahami cara membuat konfigurasi
Variabel lingkungan yang tersedia
Variabel lingkungan berikut disetel secara otomatis oleh Deployment Manager.
Kode tersebut akan diganti di mana pun Anda menggunakannya dalam template. Misalnya, gunakan variabel project_number
untuk menambahkan nomor project ke nama akun layanan.
Variabel lingkungan | Nilai |
---|---|
deployment |
Nama deployment. |
name |
name yang dideklarasikan dalam konfigurasi yang menggunakan
template. Fungsi ini dapat berguna jika Anda ingin nama yang dideklarasikan dalam
konfigurasi menjadi nama resource dalam template
yang mendasarinya. |
project |
Project ID untuk deployment ini. |
project_number |
Nomor project untuk deployment ini. |
current_time |
Stempel waktu UTC saat perluasan dimulai untuk deployment. |
type |
Jenis resource yang dideklarasikan dalam konfigurasi tingkat atas. |
username |
Pengguna Deployment Manager saat ini. |
Menggunakan variabel lingkungan
Gunakan sintaksis berikut untuk menambahkan variabel lingkungan ke template Anda:
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
Di template Anda, gunakan variabel seperti dalam contoh berikut:
Jinja
- type: compute.v1.instance name: vm-{{ env["deployment"] }} properties: machineType: zones/us-central1-a/machineTypes/f1-micro serviceAccounts: - email: {{ env['project_number'] }}-compute@developer.gserviceaccount.com scopes: - ...
Python
def GenerateConfig(context): resources = [] resources.append ({ 'name': 'vm-' + context.env["deployment"], 'type': 'compute.v1.instance', 'properties': { 'serviceAccounts': [{ 'email': context.env['project_number'] + '-compute@developer.gserviceaccount.com', 'scopes': [...] }] } ...}] return {'resources': resources}
Langkah selanjutnya
- Tambahkan template secara permanen ke project Anda sebagai jenis komposit.
- Simpan template secara eksternal untuk dibagikan kepada orang lain.
- Tambahkan skema untuk memastikan pengguna berinteraksi dengan template Anda dengan benar.