VM-Instanz aus einer Instanzvorlage erstellen

Auf dieser Seite wird erläutert, wie Sie eine Instanzvorlage zum Erstellen einer VM-Instanz verwenden. Eine Instanzvorlage ist eine API-Ressource, mit der die Properties von VM-Instanzen definiert werden. In einer Instanzvorlage werden Properties wie Betriebssystem-Image, Konfiguration nichtflüchtiger Speicher, Metadaten, Startskripts usw. definiert. Diese Instanzvorlage kann dann zum Erstellen einzelner Instanzen oder Gruppen von verwalteten Instanzen verwendet werden.

Wenn Sie eine Instanzvorlage zum Erstellen einer VM-Instanz verwenden, wird standardmäßig eine VM-Instanz erstellt, die mit den Properties in der Vorlage identisch ist. Eine Ausnahme bilden der Name der VM-Instanz und die Zone, in der die Instanz ausgeführt wird. Alternativ können Sie bestimmte Felder bei der Instanzerstellung optional überschreiben, wenn Sie bestimmte Properties der Instanzvorlage für bestimmte Verwendungsmöglichkeiten ändern möchten.

In diesem Dokument wird davon ausgegangen, dass Sie bereits über eine einsatzbereite Instanzvorlage verfügen. Wenn Sie keine Instanzvorlage haben, befolgen Sie die Anweisungen zum Erstellen einer neuen Instanzvorlage.

Vorbereitung

VM-Instanz aus einer Instanzvorlage erstellen

Folgen Sie diesen Anweisungen, um eine Instanz zu erstellen, die mit der Beschreibung in der Instanzvorlage identisch ist.

Konsole

  1. Rufen Sie die Seite "VM-Instanzen" auf.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Klicken Sie auf Neue VM-Instanz aus Vorlage.
  4. Wählen Sie eine Vorlage aus und klicken Sie auf Weiter.
  5. Geben Sie einen Namen für Ihre Instanz an und nehmen Sie nach Bedarf weitere Anpassungen vor.
  6. Klicken Sie auf Erstellen. Weitere Informationen zum Setup finden Sie unter Instanz erstellen.

gcloud

Verwenden Sie bei gcloud compute den gleichen instances create-Befehl, den Sie bei der Erstellung einer normalen Instanz verwenden würden, wobei Sie aber das Flag --source-instance-template hinzufügen:

gcloud compute instances create [INSTANCE_NAME] --source-instance-template [INSTANCE_TEMPLATE_NAME]

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der Instanz.
  • [INSTANCE_TEMPLATE_NAME] ist der Name der zu verwendenden Instanzvorlage.

    Beispiel:

    gcloud compute instances create example-instance --source-instance-template my-instance-template

API

Erstellen Sie in der API eine normale Anfrage zum Erstellen einer Instanz, fügen Sie jedoch den Abfrageparameter sourceInstanceTemplate hinzu, gefolgt von einem qualifizierten Pfad zu einer Instanzvorlage:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances?sourceInstanceTemplate=[INSTANCE_TEMPLATE_NAME]

Geben Sie im Anfragetext einen name für die VM-Instanz an:

{ "name": "example-instance" }

Beispielsweise enthält das folgende Snippet einen vollständig qualifizierten Pfad zur Vorlage https://www.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template.

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?sourceInstanceTemplate=https://www.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template

{ "name": "example-instance" }

VM-Instanz aus einer Instanzvorlage mit Überschreibungen erstellen

Wenn Sie eine VM-Instanz aus einer Instanzvorlage erstellen, wird standardmäßig eine VM-Instanz erstellt, die mit den Properties in der Vorlage identisch ist. Eine Ausnahme bilden der Name der VM-Instanz und die Zone.

Wenn Sie eine Instanz basierend auf einer Instanzvorlage, jedoch mit einigen Änderungen erstellen möchten, können Sie das Überschreibungsverhalten verwenden. In diesem Zusammenhang legen Sie Attribute fest, die beim Erstellen der Instanz für die vorhandene Instanzvorlage überschrieben werden sollen.

gcloud

Stellen Sie mithilfe des gcloud-Tools eine Anfrage zum Erstellen einer Instanz mit dem --source-instance-template-Flag und zum Überschreiben einer beliebigen Property mit dem entsprechenden gcloud-Flag. Eine Liste der anwendbaren Flags finden Sie in der gcloud-Referenz.

Möchten Sie z. B. den Maschinentyp, Metadaten, das Betriebssystem, den nichtflüchtigen Speicher mit Startfunktion und das sekundäre Laufwerk einer Instanzvorlage überschreiben, stellen Sie die folgenden Flags bereit:

gcloud compute instances create example-instance --source-instance-template example-instance \
    --machine-type n1-standard-2 --image-family debian-8 --image-project debian-cloud \
    --metadata bread=butter --disk=boot=no,name=my-override-disk

API

Verwenden Sie in der API den Abfrageparameter sourceInstanceTemplate und geben Sie im Anfragetext einer normale Anfrage zum Erstellen einer Instanz alle Felder an, die Sie überschreiben möchten.

Das Überschreibungsverhalten in der API folgt den Regeln des Formats "JSON Merge Patch", das in RFC 7396 beschrieben wird.

Dazu gehören:

  • Wenn Sie ein einfaches Feld überschreiben, wird das entsprechende einfache Feld in der Instanzvorlage durch den einfachen Feldwert in der Anfrage ersetzt. Einfache Felder umfassen machineType, sourceImage, name und so weiter.
  • Wenn Sie ein wiederkehrendes Feld überschreiben, werden alle wiederkehrenden Werte für dieses Attribut durch die entsprechenden Werte in der Anfrage ersetzt. Wiederkehrende Felder sind in der Regel Attribute vom Typ list. disks und networkInterfaces sind beispielsweise wiederkehrende Felder.
  • Wenn Sie ein nested object überschreiben, wird das Objekt in der Instanzvorlage mit der entsprechenden Objektspezifikation in der Anfrage zusammengeführt. Labels sind eine Ausnahme von dieser Regel und werden auch dann als wiederkehrende Felder behandelt, wenn sie vom Typ object sind.

Beispiel: Sie haben eine Instanzvorlage mit zwei Nicht-Bootlaufwerken, aber Sie möchten eines der beiden Laufwerke außer Kraft setzen. Sie müssen die vollständige disks-Spezifikation in Ihrer Anfrage angeben, einschließlich aller beizubehaltenden Laufwerke.

Die URL für diese Anfrage:

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?sourceInstanceTemplate=https://www.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template

Der Anfragetext:

{
  "disks": [
    {
      # Since you are overriding the repeated disk property, you must
      # specify a boot disk in the request, even if it is already
      # specified in the instance template
      "autoDelete": true,
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-8"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    },
    {
      # New disk you want to use
      "autoDelete": false,
      "boot": false,
      "mode": "READ_WRITE",
      "source": "zones/us-central1-f/disks/my-override-disk",
      "type": "PERSISTENT"
    },
    {
       # Assume this disk is already specified in instance template, but
       # you must specify it again since you are overriding the disks
       # property
      "autoDelete": false,
      "boot": false,
      "mode": "READ_WRITE",

      "source": "zones/us-central1-f/disks/my-other-disk-to-keep",
      "type": "PERSISTENT"
    }
  ],
  "machineType": "zones/us-central1-f/machineTypes/n1-standard-2",
  "name": "example-instance"
}

Weitere Informationen

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

Feedback geben zu...

Compute Engine-Dokumentation