Auf dieser Seite wird beschrieben, wie eine Konfiguration erstellt wird, die verwendet werden kann, um eine Bereitstellung zu erstellen. Mehr über Bereitstellungen können Sie unter Bereitstellung erstellen erfahren.
Eine Konfigurationsdatei definiert alle Google Cloud-Ressourcen, aus denen eine Bereitstellung besteht. Sie benötigen eine Konfigurationsdatei für das Erstellen einer Bereitstellung. Eine Konfigurationsdatei muss in der YAML-Syntax geschrieben werden.
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.
- Informationen zu den Grundlagen von Konfigurationsdateien.
Struktur einer Konfigurationsdatei
Eine Konfigurationsdatei wird im YAML-Format geschrieben und hat folgende Struktur:
# imported templates, if applicable
imports:
# path relative to the configuration file
- path: path/to/template.jinja
name: my-template
- path: path/to/another/template.py
name: another-template
resources:
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
Jeder Abschnitt definiert einen anderen Teil der Bereitstellung:
Der Abschnitt
imports
ist eine Liste von Vorlagendateien, die von der Konfiguration verwendet werden. Deployment Manager erweitert rekursiv jede importierte Vorlage für Ihre endgültige Konfiguration.Der Abschnitt
resources
ist eine Liste der Ressourcen, aus denen diese Bereitstellung besteht. Eine Ressource kann Folgendes sein:- Ein von Google verwalteter Basistyp, wie eine Compute Engine-VM-Instanz
- Eine importierte Vorlage
- Ein zusammengesetzter Typ
- Ein Typanbieter
Sie können auch andere optionale Abschnitte einfügen, z. B. die Abschnitte outputs
und metadata
. Mithilfe des Abschnitts outputs
können Sie Daten aus Ihren Vorlagen und Konfigurationen als Ausgaben verfügbar machen, die dann von anderen Vorlagen in der gleichen Bereitstellung verwendet werden können, oder als Ausgaben für Ihre Endnutzer. Der Abschnitt metadata
ermöglicht Ihnen die Verwendung anderer Features, beispielsweise zum Festlegen expliziter Abhängigkeiten zwischen Ressourcen.
In einer Konfiguration muss mindestens der Abschnitt resources
deklariert werden, gefolgt von einer Liste mit Ressourcen. Andere Abschnitte sind optional.
Ressourcentyp deklarieren
Jede Ressource in Ihrer Konfiguration muss als Typ deklariert werden. Typen können ein von Google verwalteter Basistyp, ein zusammengesetzter Typ, ein Typanbieter oder eine importierte Vorlage sein.
Von Google verwaltete Basistypen sind Typen, die zu Google Cloud-Ressourcen aufgelöst werden. Eine Cloud SQL-Instanz oder ein Google Cloud Storage-Bucket sind beispielsweise von Google verwaltete Basistypen. Sie können diese Typen mithilfe der folgenden Syntax deklarieren:
type: <api>.<api-version>.<resource-type>
Eine Compute Engine-Instanz hätte folgenden Typ:
type: compute.v1.instance
Bei einer BigQuery-Datenbank könnte der Typ so aussehen:
type: bigquery.v2.dataset
Eine Liste aller unterstützten Typen rufen Sie mit dem folgenden Befehl auf:
gcloud deployment-manager types list
Eine vollständige Liste der unterstützten, von Google verwalteten Basistypen finden Sie unter Unterstützte Ressourcentypen.
Wenn Sie einen zusammengesetzten Typ oder Typanbieter verwenden, deklarieren Sie diesen so:
# Composite type
resources:
- name: my-composite-type
type: [PROJECT]/composite:[TYPE_NAME]
Typanbieter:
# Base type
resources:
- name: my-base-type
type: [PROJECT_ID]/[TYPE_PROVIDER_NAME]:[TYPE_NAME]
Sie können Ressourcen auch mit von Google verwalteten Typanbietern (Beta) erstellen. Eine Liste der Google Cloud-Typanbieter finden Sie unter Unterstützte Typanbieter.
Wenn Sie Vorlagen verwenden möchten, deklarieren Sie die Vorlage als Typ, wobei der Vorlagenname oder Pfad den Wert type
hat.
Beispielsweise importiert die folgende Konfiguration eine Vorlage mit dem Namen my_vm_template.jinja und stellt sie als Typ bereit:
imports:
- path: path/to/template/my_vm_template.jinja
name: my-template.jinja
resources:
- name: my-first-virtual-machine
type: my-template.jinja
Weitere Informationen zu Vorlagen finden Sie unter Basisvorlage erstellen.
Ressourcenattribute angeben
Nachdem Sie den Ressourcentyp deklariert haben, müssen Sie der Ressource auch einen name
geben und die gewünschten Attribute für die Ressource festlegen. Die folgende Konfigurationsdatei definiert beispielsweise eine VM-Instanz namens vm-created-by-deployment-manager
und die gewünschten Attribute. Deployment Manager verwendet diese Informationen, um eine VM-Instanz mit diesen Attributen zu erstellen.
Zum Ermitteln der properties
einer Ressource verwenden Sie die API-Dokumentation für die Ressource:
- Sehen Sie sich das Anfrageformat in der Methode
insert
odercreate
für die Ressource an. - Wenn der Anfrage-URI die Zone enthält, fügen Sie den Attributen die Zone hinzu.
Für Arrays verwenden Sie die YAML-Listensyntax zum Auflisten von Elementen des Arrays. Wenn Sie beispielsweise eine Compute Engine-Instanz mit der API erstellen, müssen Sie im folgenden Format ein Array von Laufwerken angeben, die an die Instanz angehängt werden:
"disks": [ { "type": "PERSISTENT", "deviceName": "disk1", ... }, { "type": "PERSISTENT", "deviceName": "disk2", ... } ]
Fügen Sie diese Laufwerke der Deployment Manager-Konfiguration mit der folgenden Syntax hinzu:
disks: - deviceName: disk1 type: PERSISTENT ... - deviceName: disk2 type: PERSISTENT
Sie können auch eine beschreibbare Property dieser Ressource angeben. Ob eine Property beschreibbar ist, können Sie in der API-Referenzdokumentation des Ressourcentyps nachlesen. Die Compute Engine-Referenz kennzeichnet beispielsweise bestimmte Properties, die ausschließlich ausgegeben werden. Sie können diese Properties daher nicht in der Konfiguration definieren, da sie unveränderlich sind.
Manche APIs benötigen ein Minimum an Properties, um eine Ressource zu erstellen. Ein nichtflüchtiger Speicher für Compute Engine benötigt beispielsweise den Laufwerksnamen, die Image-Quelle, die Größe der Laufwerks und so weiter, um ein neues Laufwerk zu erstellen. Weitere Informationen zu einer bestimmten Ressource finden Sie in der zugehörigen API-Referenz.
Vorlagenattribute definieren
Wenn Sie eine Vorlage für Ihre Konfiguration importieren, definieren Sie im Abschnitt properties
Werte für Vorlagenattribute anstelle von Ressourcenattributen. Wenn die Vorlage keine Vorlagenattribute hat, können Sie den Abschnitt properties
auch ganz weglassen.
Ressourcen aus verschiedenen Google Cloud-Diensten erstellen
Schließlich kann eine Konfigurationsdatei Ressourcen auch aus verschiedenen Google Cloud-Diensten erstellen. Zum Beispiel erstellt die folgende Konfigurationsdatei Ressourcen von Compute Engine und BigQuery:
Unterstützte Ressourcentypen und -Properties
Eine vollständige Liste der unterstützten, von Google verwalteten Ressourcen finden Sie in der Dokumentation Unterstützte Ressourcentypen.
Weitere Informationen
- Vorschau der Konfiguration vor der endgültigen Bereitstellung aufrufen
- Bereitstellung nach abgeschlossener Konfiguration erstellen
- Konfigurationsdateien zur Verwendung von Vorlagen bearbeiten