Untuk setiap deployment, Deployment Manager membuat variabel lingkungan yang telah ditetapkan sebelumnya 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 ditetapkan secara otomatis oleh Deployment Manager.
Variabel ini 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. Tindakan ini dapat berguna jika Anda ingin nama yang Anda deklarasikan 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 teratas. |
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
Dalam 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.
- Menghosting template secara eksternal untuk dibagikan kepada orang lain.
- Tambahkan skema untuk memastikan pengguna berinteraksi dengan template Anda dengan benar.