使用部署作業專屬的環境變數

Deployment Manager 會為各項部署作業建立預先定義的環境變數,當中包含從部署作業推論得出的資訊。您可以在 Python 或 Jinja2 範本中使用這些環境變數,藉此取得專案或部署作業的相關資訊。

事前準備

可用的環境變數

Deployment Manager 會自動設定下列環境變數。無論您在範本中的哪個位置使用環境變數,系統都會替換這些環境變數。舉例來說,使用 project_number 變數將專案編號新增至服務帳戶的名稱。

環境變數
deployment 部署作業的名稱。
name 在使用這個範本的設定中宣告的 name。如果您希望設定中宣告的名稱成為基本範本中資源的名稱,這項變數就會相當實用。
project 此部署的專案 ID
project_number 此部署的專案編號
current_time 部署的展開作業開始時的世界標準時間 (UTC) 時間戳記。
type 在頂層設定中宣告的資源類型。
username Deployment Manager 目前的使用者。

使用環境變數

使用下列語法可將環境變數新增至範本中:

{{ env["deployment"] }} # Jinja

context.env["deployment"] # Python

在範本中使用變數,如下列範例所示:

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}

後續步驟