Einer der Vorteile von Vorlagen ist die Möglichkeit, benutzerdefinierte Vorlageneigenschaften zu erstellen und zu definieren. Vorlageneigenschaften sind beliebige Variablen, die Sie in Vorlagendateien definieren. Jede Konfigurationsdatei oder Vorlagendatei, die die betreffende Vorlage verwendet, kann einen Wert für die Vorlageneigenschaft bereitstellen, ohne die Vorlage direkt zu ändern. Dadurch können Sie die Eigenschaft abstrahieren, sodass Sie den Wert der Eigenschaft für jede eindeutige Konfiguration ändern können, ohne die zugrunde liegende Vorlage zu aktualisieren.
Die folgende Zeile gibt beispielsweise ein Vorlagenattribut in der URL des Maschinentyps an:
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
In einer Konfiguration, in der diese Vorlage verwendet wird, können Sie den Wert von zone
im Abschnitt properties
der Vorlage festlegen:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager kann den Wert von zone
an die zugrunde liegende Vorlage übergeben.
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.
Vorlageneigenschaften erstellen
So erstellen Sie eine Vorlageneigenschaft:
Jinja
In Jinja definieren Sie eine Property mit der folgenden Syntax:
{{ properties["PROJECT_NAME"] }}
Beispiel:
Python
In Python definieren Sie eine Property mit der folgenden Syntax:
context.properties["PROPERTY_NAME"]
Beispiel:
Das vollständige Python-Beispiel finden Sie im GitHub-Repository von Deployment Manager.
Vorlageneigenschaftswerte in übergeordneter Konfiguration festlegen
In der übergeordneten Konfiguration können Sie Werte für Vorlageneigenschaften mithilfe der folgenden Syntax festlegen:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Sie müssen Werte für alle Vorlagenattribute in der Vorlage festlegen. Wenn eine Vorlage beispielsweise die Vorlagenattribute zone
, image
, network
hat, müssen Sie Werte für alle diese Attribute in der übergeordneten Konfiguration definieren.
Wenn bestimmte Eigenschaften Standardwerte haben, können Sie diese auch in Schemas festlegen. Ein Vorlagenattribut mit einem Standardwert kann in der übergeordneten Konfiguration ausgelassen werden, wenn der Standardwert für die Bereitstellung geeignet ist.
Werte für Vorlagenattribute in der Befehlszeile festlegen
Anstatt Werte für Vorlagenattribute in der übergeordneten Datei anzugeben, mit der die Vorlage importiert wird, bietet Deployment Manager die Möglichkeit, diese Werte direkt in der Google Cloud CLI festzulegen. Dank dieser Funktion können Sie das Erstellen der YAML-Datei der obersten Ebene überspringen. Deployment Manager generiert die übergeordnete Konfiguration für Ihre Bereitstellung automatisch anhand der Informationen in Ihrer Anfrage.
Angenommen, Sie haben die folgende Vorlage mit einem Vorlagenattribut namens zone
:
Mit der Google Cloud CLI können Sie diese Vorlagendatei direkt übergeben und die Werte für Ihre Vorlagenattribute in der Befehlszeile angeben. Mit der folgenden Anfrage wird beispielsweise die Vorlage übergeben und das Attribut zone
direkt in der Befehlszeile angegeben:
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
Beachten Sie:
Alle Werte werden als YAML-Werte geparst. Beispiel:
version: 3
wird als Ganzzahl übergeben. Wenn Sie den Wert als String angeben möchten, setzen Sie den Wertversion: \'3\'
in einfache Anführungszeichen mit Escapezeichen.Bei booleschen Werten wird die Groß- und Kleinschreibung nicht berücksichtigt.
TRUE
,true
undTrue
werden also gleich behandelt.Sie müssen alle erforderlichen Attribute übergeben, die von der Vorlage definiert werden, d. h, Sie können nicht nur eine Teilmenge der Attribute bereitstellen. Wenn bestimmte Attribute Standardwerte haben, können Sie das jeweilige Attribut in der Befehlszeile weglassen.
Wenn Sie mehrere Attribute festlegen möchten, geben Sie durch Kommas getrennte Schlüssel/Wert-Paare an. Die Reihenfolge, in der die Paare angegeben sind, spielt keine Rolle. Beispiel:
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
Nach der Ausführung dieses Befehls erstellt Deployment Manager eine Bereitstellung mit der von Ihnen angegebenen Vorlage. Sie können feststellen, ob die Bereitstellung mit der Google Cloud Console oder der gcloud CLI erstellt wurde. Weitere Informationen zur Anzeige einer Bereitstellung finden Sie unter Manifest anzeigen.
Weitere Informationen
- Projekte und Bereitstellungen durch Umgebungsvariablen mit Informationen füllen.
- Vorlage dauerhaft als zusammengesetzten Typ dem Projekt hinzufügen.
- Vorlagen extern hosten und so mit anderen teilen