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}
次のステップ
- プロジェクトに、テンプレートを複合タイプとして永続的に追加する。
- テンプレートを外部にホスティングして共有する。
- スキーマを追加して、ユーザーがテンプレートを正しく操作できるようにする。