Einsatzspezifische Umgebungsvariablen verwenden

Für jede Ihrer Bereitstellungen erstellt Deployment Manager vordefinierte Umgebungsvariablen, die Informationen enthalten, die aus Ihrer Bereitstellung abgeleitet werden. Verwenden Sie diese Umgebungsvariablen in Ihren Python- oder Jinja2-Vorlagen, um Informationen über Ihr Projekt oder Ihre Bereitstellung abzurufen.

Vorbereitung

Verfügbare Umgebungsvariablen

Die folgenden Umgebungsvariablen werden vom Deployment Manager automatisch festgelegt. Sie werden überall dort ersetzt, wo Sie sie in Ihren Vorlagen verwenden. Verwenden Sie zum Beispiel die Variable project_number, um die Projektnummer zum Namen eines Dienstkontos hinzuzufügen.

Umgebungsvariable Wert
deployment Der Name der Bereitstellung.
name Der in der Konfiguration deklarierte name, den die Vorlage verwendet. Dies kann nützlich sein, wenn Sie möchten, dass der Name, den Sie in der Konfiguration angeben, dem Namen der Ressource in der zugrunde liegenden Vorlage entspricht.
project Die Projekt-ID für diese Bereitstellung.
project_number Die Projektnummer für diese Bereitstellung.
current_time Der UTC-Zeitstempel des Zeitpunkts, an dem die Erweiterung für die Bereitstellung gestartet wurde.
type Der Ressourcentyp, der in der obersten Ebene der Konfiguration deklariert wurde.
username Der aktuelle Deployment Manager-Nutzer.

Umgebungsvariable verwenden

Verwenden Sie folgende Syntax, um Ihren Vorlagen eine Umgebungsvariable hinzuzufügen:

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

context.env["deployment"] # Python

Geben Sie die Variablen in Ihrer Vorlage wie in diesen Beispielen an:

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}

Weitere Informationen