Grundkonfiguration erstellen

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 Platform-Ressourcen, aus denen eine Bereitstellung besteht. Sie benötigen eine Konfigurationsdatei für die Bereitstellung. Eine Konfigurationsdatei muss in der YAML-Syntax geschrieben werden.

Vorbereitung

Struktur einer Konfigurationsdatei

Eine Konfigurationsdatei wird im YAML-Format geschrieben und hat folgende Struktur:

imports:
- path: path/to/template.jinja
  name: my-template
- path: path/to/another/template.py

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 der Abschnitte definiert einen anderen Teil der Bereitstellung:

  • Die imports-Abschnitte umfassen eine Liste von Vorlagendateien, die von der Konfiguration verwendet werden. Deployment Manager blendet rekursiv jede importierte Vorlage ein, um Ihre endgültige Konfiguration zu generieren.

  • Der resources-Abschnitt umfasst 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 wie outputs und metadata hinzufügen. Im Abschnitt outputs können Sie Daten aus Ihren Vorlagen und Konfigurationen als Ausgaben veröffentlichen. Diese können dann für andere Vorlagen in derselben Bereitstellung verwendet werden. Auch Ausgaben für Ihre Endnutzer sind möglich. Der Abschnitt metadata stellt weitere Funktionen zur Anwendung bereit, z. B. die Festlegung expliziter Abhängigkeiten zwischen Ressourcen.

In einer Konfiguration muss mindestens der resources-Abschnitt deklariert sein, auf den eine Liste der Ressourcen folgt. 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 in GCP-Ressourcen aufgelöst werden. Eine Cloud SQL-Instanz oder ein Google Cloud Storage-Bucket ist beispielsweise von Google verwalteter Basistyp. 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 mit allen unterstützten Typen wird angezeigt, wenn Sie Folgendes ausführen:

gcloud deployment-manager types list

Sie können eine vollständige Liste der unterstützten, von Google verwalteten Basistypen in der Dokumentation Unterstützte Ressourcentypen anzeigen.

Wenn Sie einen zusammengesetzten Typ oder Typanbieter verwenden, deklarieren Sie diesen wie folgt:

# Composite type

resources:
- name: my-composite-type
  type: [PROJECT]/composite:[TYPE_NAME]

Typanbieter:

# Base type

resources:
- name: my-base-type
  type: [PROJECT_ID]/[TYPE_NAME]:[COLLECTION]

Wenn Sie Vorlagen verwenden möchten, deklarieren Sie die Vorlage als Typ. Der Vorlagenname oder Pfad wird als Wert von type angegeben. 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 Grundvorlage erstellen.

Ressourceneigenschaften angeben

Nach der Deklaration eines Ressourcentyps müssen Sie der Ressource auch einen name geben und die Eigenschaften der Ressource festlegen. Beispielsweise definiert die folgende Konfigurationsdatei eine VM-Instanz namens vm-created-by-deployment-manager und die erforderlichen Eigenschaften. Deployment Manager nutzt diese Informationen zur Erstellung einer VM-Instanz mit diesen Merkmalen.

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: vm-created-by-deployment-manager
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-8
    networkInterfaces:
    - network: global/networks/default

Wenn Sie die properties einer Ressource definieren, können Sie jede bearbeitbare Eigenschaft dieser Ressource angeben. Um festzustellen, ob eine Eigenschaft bearbeitbar ist, verwenden Sie die API-Referenzdokumentation für den Ressourcentyp. Beispielsweise steht in der Compute Engine-Referenz, dass bestimmte Eigenschaften ausschließlich für Ausgaben gelten. Daher können Sie diese Eigenschaften in Ihrer Konfiguration nicht definieren, da sie unveränderlich sind.

Manche APIs benötigen ein Minimum an Eigenschaften, um eine Ressource zu erstellen. Eine persistente Compute Engine-Festplatte benötigt beispielsweise den Datenträgernamen, die Bildquelle, die Größe der Festplatte und so weiter, um einen neuen Datenträger zu erstellen. Weitere Informationen zu bestimmten API-Ressourcen finden Sie in der Produktdokumentation zu der jeweiligen Ressource.

Vorlageneigenschaften definieren

Wenn Sie eine Vorlage zur Verwendung in Ihrer Konfiguration importieren möchten, definieren Sie anstelle der Ressourceneigenschaften im properties-Abschnitt die Werte der Vorlageneigenschaften. Wenn die Vorlage keine Vorlageneigenschaften hat, können Sie den properties-Abschnitt auch ganz weglassen.

Ressourcen aus verschiedenen GCP-Diensten erstellen

Eine Konfigurationsdatei kann Ressourcen auch aus verschiedenen GCP-Diensten erstellen. Zum Beispiel erstellt die folgende Konfigurationsdatei Ressourcen aus Compute Engine und BigQuery:

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: vm-created-by-deployment-manager
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-8
    networkInterfaces:
    - network: global/networks/default

- name: big-query-dataset
  type: bigquery.v2.dataset
  properties:
    datasetReference:
      datasetId: example_id

Unterstützte Ressourcentypen und -eigenschaften

Eine vollständige Liste der unterstützten, von Google verwalteten Ressourcen finden Sie in der Dokumentation Unterstützte Ressourcentypen.

Nächste Schritte

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Deployment Manager-Dokumentation