Deployment Manager 會為各項部署作業建立預先定義的環境變數,當中包含從部署作業推論得出的資訊。您可以在 Python 或 Jinja2 範本中使用這些環境變數,藉此取得專案或部署作業的相關資訊。
事前準備
- 如要使用本指南提供的指令列範例,請安裝 `gcloud` 指令列工具。
- 如要使用本指南提供的 API 範例,請設定 API 存取權。
- 瞭解如何建立基本範本。
- 瞭解如何建立設定。
可用的環境變數
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}