Nachdem Sie ein Maschinen-Image erstellt haben, können Sie damit Kopien der Quell-Compute-Instanz erstellen. Weitere Informationen zur Verwendung von Maschinen-Images finden Sie unter Gründe für die Verwendung von Maschinen-Images.
Ein Maschinen-Image enthält die meisten Informationen und Daten, die zum Erstellen einer Instanz erforderlich sind.
Maschinen-Images können nicht geändert werden. Bei der Erstellung einer Instanz aus einem Maschinen-Image können Sie jedoch fast alle Attribute des Maschinen-Images überschreiben.
Sie können Instanzen aus Maschinen-Images mit derGoogle Cloud Console, der Google Cloud CLI oder mit REST erstellen.
Hinweis
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Sie können innerhalb von 60 Minuten maximal 6 Instanzen aus einem Quellmaschinen-Image erstellen. Wenn dieses Limit überschritten wird, schlägt der Vorgang zum Erstellen der Instanz fehl und gibt einen Fehler wie den folgenden zurück:
Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'. Too frequent operations from the source resource.
Wenn Sie mehr Instanzen als das festgelegte Limit (6 Instanzen in 60 Minuten) erstellen möchten, erstellen Sie zusätzliche Maschinen-Images aus der Quellinstanz oder kurzlebige Maschinen-Images aus den neuen Instanzen. Anschließend können Sie die erforderliche Anzahl von Instanzen aus den neuen Maschinen-Images erstellen.
Mit der Google Cloud Console können Sie keine Instanzen aus Maschinen-Images mit angehängten regionalen Laufwerken erstellen. Verwenden Sie die Google Cloud CLI oder REST und geben Sie die Parameter
replicaZones
unddeviceName
für jedes angeschlossene regionale Laufwerk an. Weitere Informationen finden Sie unter Instanz aus einem Maschinen-Image mit Attribut-Überschreibungen erstellen.Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Wählen Sie im Menü
VM aus… erstellen die Option Maschinen-Images aus.Führen Sie im angezeigten Fenster VM aus Maschinen-Image erstellen die folgenden Schritte aus:
Wählen Sie ein Maschinen-Image aus.
Klicken Sie zum Erstellen und Starten der Instanz auf Erstellen.
INSTANCE_NAME
: der Name der InstanzZONE
: Die Zone für die InstanzSOURCE_MACHINE_IMAGE_NAME
: das Maschinen-Image, aus dem die Instanz erstellt werden sollPROJECT_ID
: Ihre Projekt-ID.ZONE
: Zone für die Instanz.INSTANCE_NAME
: ein Name für die Instanz.SOURCE_MACHINE_IMAGE_URL
: die vollständige oder teilweise URL des Maschinen-Images, mit dem Sie die Instanz erstellen möchten. Beispiel: Sie haben ein Maschinen-Image mit dem Namenmy-machine-image
in einem Projekt namensmyProject
. Dementsprechend sind die folgenden URLs gültig:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Beim Erstellen einer Instanz aus dem Maschinen-Image können Sie nur die Attribute des angehängten Laufwerks außer dem Namen des Laufwerks überschreiben.
Sie müssen den Parameter
replicaZones
für jedes angeschlossene regionale Laufwerk sowie dendeviceName
des regionalen Laufwerks aus dem Maschinen-Image angeben.Wenn die Quellinstanz (zum Generieren des Maschinen-Images verwendet) und die neue Instanz zum selben Projekt und zur selben Region gehören, gilt Folgendes:
- Die meisten Attribute der Quellinstanz und der neuen Instanz sind identisch. Zu den abweichenden Attributen gehören z. B. sitzungsspezifische IP-Adressen, die automatisch zugewiesen werden.
- Falls die Quellinstanz noch vorhanden ist, wenn Sie eine neue Instanz erstellen, kann die neue Instanz nicht denselben Namen und dieselbe Zone wie die Quellinstanz verwenden.
Wenn die Quellinstanz und die neue Instanz zum selben Projekt gehören, aber in unterschiedlichen Regionen sind, gilt Folgendes:
- Sie müssen alle zonalen und regionalen Ressourcen für die neue Instanz überschreiben. Wenn Sie beispielsweise eine Instanz aus einem Maschinen-Image erstellen, dessen Quellinstanz zu einer anderen Region gehört, müssen Sie regionale Ressourcen wie das Subnetzwerk und regionale Firewallregeln überschreiben. Globale Ressourcen wie Load-Balancer und Dienstkonten brauchen Sie jedoch nicht zu überschreiben, es sei denn, Sie möchten diese ändern.
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Wählen Sie im Menü
VM aus… erstellen die Option Maschinen-Images aus.Wählen Sie im angezeigten Fenster VM aus Maschinen-Image erstellen eine Vorlage aus und klicken Sie dann auf
Anpassen.Optional: Geben Sie weitere Konfigurationsoptionen an. Weitere Informationen finden Sie unter Konfigurationsoptionen beim Erstellen einer Instanz.
Klicken Sie zum Erstellen und Starten der Instanz auf Erstellen.
PROJECT_ID
: die Projekt-ID.ZONE
: Zone für die Instanz.INSTANCE_NAME
: ein Name für die Instanz.NEW_MACHINE_TYPE
: Der Maschinentyp, den Sie für die Instanz verwenden möchten.SOURCE_MACHINE_IMAGE_URL
: die vollständige oder teilweise URL des Maschinen-Images, mit dem Sie die Instanz erstellen möchten. Beispiel: Sie haben ein Maschinen-Image mit dem Namenmy-machine-image
in einem Projekt namensmyProject
. Dementsprechend sind die folgenden URLs gültig:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Wenn Sie ein grundlegendes Feld überschreiben, wird das entsprechende grundlegende Feld im Maschinen-Image durch den grundlegenden Feldwert in der Anfrage ersetzt. Zu den grundlegenden Feldern gehören Parameter wie
machineType
undname
. - 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
. Zum Beispiel sinddisks
undnetworkInterfaces
wiederkehrende Felder. - Wenn Sie ein
nested object
(verschachteltes Objekt) überschreiben, wird das Objekt im Maschinen-Image mit der entsprechenden Objektspezifikation in der Anfrage zusammengeführt. Wenn sich ein verschachteltes Objekt in einem wiederkehrenden Feld befindet, wird das Feld gemäß den Regeln für wiederkehrende Felder behandelt. Labels sind eine Ausnahme von dieser Regel und werden als wiederkehrende Felder behandelt, obwohl sie vom Typobject
sind. Gewähren Sie Zugriff auf das Maschinen-Image, das in einem anderen Projekt gespeichert ist.
Berechtigungen können entweder für das Quellprojekt oder das Maschinen-Image erteilt werden. Verwenden Sie den Befehl
gcloud compute machine-images add-iam-policy-binding
, um die Berechtigungen für das Maschinen-Image zu erteilen.gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \ --project=MACHINE_IMAGE_PROJECT \ --member='ACCOUNT_EMAIL' \ --role='roles/compute.admin'
Ersetzen Sie dabei Folgendes:
MACHINE_IMAGE_PROJECT
: die Projekt-ID des Projekts, das das Quellmaschinen-Image enthält.MACHINE_IMAGE_NAME
: der Name des Maschinen-Images, dem Sie die Berechtigungsbindung hinzufügen möchten.ACCOUNT_EMAIL
: die E-Mail-Adresse desserviceAccount
oderuser
, das bzw. der die Instanz erstellt. Achten Sie darauf, dass die E-Mail so formatiert ist, dass sie das erforderliche Präfix enthält. Das Präfix muss einer der folgenden Optionen sein:user:
Geben Sie diesen Wert an, wenn die E-Mail-Adresse mit einem Nutzerkonto verknüpft ist. Beispiel:user:user@example.com
.serviceAccount:
geben Sie diesen Wert an, wenn die E-Mail-Adresse mit einem Dienstkonto verknüpft ist. Beispiel:serviceAccount:123456789000-compute@developer.gserviceaccount.com
Beispiel
Wenn Sie beispielsweise eine
compute.admin
-Bindung zum Maschinen-Imagemy-machine-image
der E-Mail-Adresse des Dienstkontos123456789000-compute@developer.gserviceaccount.com
hinzufügen möchten, verwenden Sie den folgendengcloud CLI
-Befehl:gcloud compute machine-images add-iam-policy-binding my-machine-image \ --project=machine-image-project \ --member='serviceAccount:123456789000-compute@developer.gserviceaccount.com' \ --role='roles/compute.admin'
Gewähren Sie dem Nutzer, der den Befehl
gcloud compute instances create
ausführt, die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser
) für das Dienstkonto, das dem Maschinen-Image zugeordnet ist.Verwenden Sie den Befehl
gcloud compute instances create
zum Erstellen einer Instanz aus einem Maschinen-Image.gcloud compute instances create INSTANCE_NAME \ --project=INSTANCE_PROJECT_ID \ --zone=ZONE \ --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --subnet=SUBNET
Ersetzen Sie Folgendes:
INSTANCE_PROJECT_ID
: die Projekt-ID des Projekts, in dem Sie die Instanz erstellen möchtenINSTANCE_NAME
: ein Name für die InstanzZONE
: Die Zone für die InstanzMACHINE_IMAGE_PROJECT
: die Projekt-ID des Projekts, in dem sich das Maschinen-Image befindet.MACHINE_IMAGE_NAME
: das Maschinen-Image, aus dem die Instanz erstellt werden soll.SERVICE_ACCOUNT_EMAIL
: die E-Mail-Adresse des Dienstkontos, das Sie an Ihre Instanz anhängen möchtenSUBNET
: Wenn sich das Subnetz und die Instanz im selben Projekt befinden, ersetzen Sie SUBNET durch den Namen eines Subnetzes, das sich in derselben Region wie die Instanz befindet.Wenn Sie ein Subnetz in einem freigegebenen VPC-Netzwerk angeben möchten, ersetzen Sie
SUBNET
durch einen String im folgenden Format:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Ersetzen Sie Folgendes:
HOST_PROJECT_ID
: Projekt-ID des freigegebenen VPC-HostprojektsREGION
: Die Region des Subnetzes.SUBNET_NAME
: Name des Subnetzes
Beispiel
Mit dem folgenden Befehl wird beispielsweise eine VM mit dem Namen
my-instance
invm-project
in der Zoneus-east1-b
aus einem Maschinen-Image namensmy-machine-image
erstellt.Das Flag
--service-account
gibt das Dienstkonto an, das Sie an die neu erstellte VM anhängen möchten. Wenn Sie dieses Flag nicht angeben, kann das Quelldienstkonto nicht für beide Projekte freigegeben werden und der Vorgang schlägt fehl.gcloud compute instances create my-instance \ --project=vm-project \ --zone=us-east1-b \ --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \ --service-account=000123456789-compute@developer.gserviceaccount.com
Nachdem die VM erstellt wurde, sieht die Ausgabe in etwa so aus:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) für die Compute-Instanz oder das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Compute Engine-Instanzen aus Maschinenabbildern benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Beschränkungen
Beim Erstellen von Instanzen aus Maschinen-Images gelten die folgenden Einschränkungen:
Instanz aus einem Maschinen-Image erstellen (kein Überschreiben)
Verwenden Sie diese Methode, wenn Sie eine Instanz erstellen möchten, die vollständig auf dem Maschinen-Image beruht, ohne die Attribute zu ändern.
Console
gcloud
Verwenden Sie den Befehl
gcloud compute instances create
zum Erstellen einer Instanz aus einem Maschinen-Image.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --source-machine-image=SOURCE_MACHINE_IMAGE_NAME
Ersetzen Sie Folgendes:
Beispiel
Mit dem folgenden
gcloud
-Befehl können Sie beispielsweise eine Instanz namensmy-instance
in der Zoneus-east1-b
aus einem Maschinen-Image namensmy-machine-image
erstellen.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image
Nachdem die Instanz erstellt wurde, sieht die Ausgabe in etwa so aus:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
REST
Erstellen Sie mit der API eine
POST
-Anfrage an die Methodeinstances.insert
. Geben Sie im Anfragetext die folgenden Parameter an:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Ersetzen Sie dabei Folgendes:
Instanz aus einem Maschinen-Image mit Attribut-Überschreibungen erstellen
Wenn Sie eine Instanz erstellen möchten, die hauptsächlich auf dem Maschinen-Image beruht, jedoch mit einigen Änderungen, können Sie Überschreibungen verwenden. Dafür übergeben Sie beim Erstellen der Instanz Attribute, die die vorhandenen Attribute des Maschinen-Images überschreiben.
Achten Sie bei der Verwendung der Überschreibungsfunktion auf die folgenden Hinweise:
Console
gcloud
Verwenden Sie den Befehl
gcloud compute instances create
, um eine Instanz aus einem Maschinen-Image zu erstellen, und geben Sie dabei die Attribute an, die Sie überschreiben möchten.Mit dem folgenden
gcloud
-Befehl können Sie beispielsweise die VMmy-instance
in der Zoneus-east1-b
aus dem Maschinen-Imagemy-machine-image
erstellen. In diesem Beispiel werden Überschreibungen angewendet, um den Maschinentyp zu ändern, die Hostwartungsrichtlinie zu beenden und einen regionalen nichtflüchtigen Speicher mit dem Namenregional-disk-0
zu konfigurieren.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image \ --machine-type=e2-standard-2 \ --maintenance-policy=TERMINATE \ --create-disk=device-name=boot-device-0,boot=true,auto-delete=true \ --create-disk=device-name=regional-disk-0,\ replica-zones=^:^us-east1-b:us-east1-c,boot=false
REST
Wenn Sie die Eigenschaften des Maschinen-Images bei der Instanzerstellung überschreiben möchten, erstellen Sie eine
POST
-Anfrage an die Methodeinstances.insert
. Fügen Sie im Anfragetext den ParametersourceMachineImage
und alle gewünschten Überschreibungen ein. Sie können alle Attribute einfügen, die Sie auch bei der normalen Instanzerstellung festlegen können. Wenn Sie beispielsweise den Maschinentyp überschreiben möchten, würde Ihr API-Aufruf den ParametermachineType
enthalten.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Ersetzen Sie Folgendes:
Überschreibungsverhalten
Das Überschreibungsverhalten in der Compute Engine API folgt den Regeln des Formats „JSON Merge Patch“, das in RFC 7396 beschrieben ist. Zusammenfassend gelten die folgenden Regeln:
Wenn Sie beispielsweise eine VM aus einem Maschinen-Image erstellen und regionale Laufwerke mit der VM erstellen möchten, verwenden Sie ein Überschreiben für die Laufwerke, damit Sie die Option
replicaZones
angeben können. Da es sich bei dem Felddisks
um ein wiederkehrendes Feld handelt, müssen Sie die Laufwerkkonfiguration für alle angehängten Laufwerke und das Bootlaufwerk angeben, nicht nur für die regionalen Laufwerke.POST https://compute.googleapis.com/compute/v1/projects/my-proj/zones/us-west1-a/instances { "name": "vm-from-image", "sourceMachineImage": "global/machineImages/my-machine-image", "disks": [ { "kind": "compute#attachedDisks", "boot": true, "autoDelete": true, "deviceName": "boot-device", "initializeParams": { "sourceImage": "projects/my-proj/global/images/my-image", "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", } }, { "kind": "compute#attachedDisk", "boot": false, "autoDelete": true, "deviceName": "regional-device-0", "initializeParams": { "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", "replicaZones": [ "projects/my-proj/zones/us-west1-a", "projects/my-proj/zones/us-west1-c" ] } } ] }
Instanz mit einem Maschinen-Image aus einem anderen Projekt erstellen
Wenn Sie eine Instanz mit einem Maschinen-Image aus einem anderen Projekt erstellen, haben Sie möglicherweise keinen Zugriff auf das Dienstkonto, das diesem Quellprojekt zugeordnet ist. Wenn Sie eine Instanz aus einem Maschinen-Image erstellen möchten, das sich in einem anderen Projekt befindet, müssen Sie dafür sorgen, dass Sie Zugriff auf das Maschinen-Image haben, und das Dienstkonto-Attribut auf der neuen Instanz überschreiben.
Wenn Sie ein Maschinen-Image für Projekte freigeben, die ein freigegebenes VPC-Netzwerk verwenden, müssen Sie die Details der freigegebenen VPC explizit angeben, wenn Sie eine Instanz aus dem Maschinen-Image erstellen. Wenn Sie beispielsweise eine Instanz in einem Nicht-Hostprojekt erstellen, geben Sie die Details zur freigegebenen VPC des Hostprojekts mit den Flags
--network
,--subnet
oder--network-interface
an.In den folgenden Abschnitten wird beschrieben, wie Sie mithilfe der Google Cloud CLI eine Instanz aus einem Maschinen-Image erstellen, das sich in einem anderen Projekt befindet.
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-02-05 (UTC).
-