Menggunakan variabel lingkungan khusus deployment

Untuk setiap deployment Anda, Deployment Manager membuat variabel lingkungan yang telah ditetapkan 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

Variabel lingkungan yang tersedia

Variabel lingkungan berikut ditetapkan secara otomatis oleh Deployment Manager. Variabel ini 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. Hal 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 ekspansi 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

Dalam template, 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 berikutnya

  • Tambahkan template secara permanen ke project Anda sebagai jenis komposit.
  • Hosting template secara eksternal untuk dibagikan kepada orang lain.
  • Tambahkan skema untuk memastikan pengguna berinteraksi dengan template Anda dengan benar.