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.
Hinweis
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.
- Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugriff ein.
- Informieren Sie sich, wie grundlegende Vorlagen erstellt werden.
- Informieren Sie sich, wie Konfigurationen erstellt werden.
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 wollen, 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 angegeben ist. |
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
- Vorlage dauerhaft als zusammengesetzten Typ dem Projekt hinzufügen.
- Vorlagen extern hosten und so mit anderen teilen.
- Schemas hinzufügen, sodass Nutzer Ihre Vorlagen korrekt anwenden.