デプロイメント固有の環境変数の使用

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}

次のステップ