Wenn Sie eine große Anzahl von identischen und voneinander unabhängigen VM-Instanzen erstellen möchten, erstellen Sie VMs mithilfe der Google Cloud CLI oder der Compute Engine API im Bulk. Sie können diese VMs über alle Zonen in einer Region hinweg oder verteilt auf bestimmte Zonen erstellen.
Weitere Informationen und zugehörige Einschränkungen finden Sie unter Informationen zur Bulk-Erstellung von VMs.
Vorbereitung
- Prüfen Sie für VMs und zugehörige Ressourcen, die Sie erstellen möchten, ob Ihr Kontingent ausreicht und Sie die erforderlichen Berechtigungen haben.
-
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 so bei Compute Engine authentifizieren.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
compute.instances.create
für das Projekt-
So erstellen Sie die VM mit einem benutzerdefinierten Image:
compute.images.useReadOnly
für das Image -
Um die VM mit einem Snapshot zu erstellen:
compute.snapshots.useReadOnly
für den Snapshot -
So verwenden Sie eine Instanzvorlage zum Erstellen der VM:
compute.instanceTemplates.useReadOnly
für die Instanzvorlage -
So weisen Sie der VM ein Legacy-Netzwerk zu:
compute.networks.use
für das Projekt -
Um eine statische IP-Adresse für die VM festzulegen:
compute.addresses.use
für das Projekt -
So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein Legacy-Netzwerk verwenden:
compute.networks.useExternalIp
für das Projekt -
So geben Sie ein Subnetz für Ihre VM an:
compute.subnetworks.use
für das Projekt oder für das ausgewählte Subnetz -
So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein VPC-Netzwerk verwenden:
compute.subnetworks.useExternalIp
für das Projekt oder für das ausgewählte Subnetz -
Um Metadaten der VM-Instanz für die VM festzulegen:
compute.instances.setMetadata
für das Projekt -
Zum Festlegen von Tags für die VM:
compute.instances.setTags
auf der VM -
So legen Sie Labels für die VM fest:
compute.instances.setLabels
auf der VM -
So legen Sie ein Dienstkonto für die VM fest:
compute.instances.setServiceAccount
auf der VM -
Um ein neues Laufwerk für die VM zu erstellen:
compute.disks.create
für das Projekt -
So hängen Sie ein vorhandenes Laufwerk im Lese- oder Lese-/Schreibmodus an:
compute.disks.use
für das Laufwerk -
So hängen Sie ein vorhandenes Laufwerk im Lesemodus an:
compute.disks.useReadOnly
für das Laufwerk NAME_PATTERN ist das Namensmuster für die VMs. Verwenden Sie eine Abfolge von Hash-Zeichen (
#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAMES ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Wenn Sie dieses Flag verwenden und
COUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.REGION ist die Region, in der die VMs erstellt werden sollen.
COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn Sie--predefined-names
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.LOCATION_POLICY: die Zonen, die in einer Region ein- oder ausgeschlossen werden sollen. Verwenden Sie eine Liste von Schlüssel/Wert-Paaren, wobei die Zone als Schlüssel und die Richtlinie als Wert dienen. Gültige Werte für die Richtlinie sind
allow
, der Standardwert, unddeny
. Hier ein Beispielwert für dieses Flag:--location-policy=us-east1-b=allow,us-east1-c=deny
TARGET_SHAPE: Die Verteilung der VMs in den angegebenen Zonen. Verwenden Sie das Flag
--location-policy
, um die Zonen anzugeben. In der folgenden Tabelle sind die für dieses Flag gültigen Werte aufgeführt:Wert Beschreibung ANY_SINGLE_ZONE
Erzwingt die VM-Platzierung innerhalb einer einzelnen Zone und priorisiert die Auslastung nicht verwendeter Reservierungen. Hiermit können Sie zonenübergreifenden ausgehenden Netzwerktraffic vermeiden und die Netzwerklatenz reduzieren. Dies ist der Standardwert. BALANCED
Versucht, VMs gleichmäßig auf alle Zonen in der Region zu verteilen. ANY
Ermöglicht die Verteilung von VMs auf mehrere Zonen in einer Region. Wählt Zonen mit verfügbaren Ressourcen, die nicht verwendete zonale Reservierungen maximieren. PROJECT_ID: die Projekt-ID.
REGION ist die Region, in der die VMs erstellt werden sollen.
NAME_PATTERN ist das Namensmuster für die VMs. Geben Sie entweder diesen Wert oder
perInstanceProperties
an. Verwenden Sie eine Abfolge von Hash-Zeichen (#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAME_1, PREDEFINED_NAME_2 ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Geben Sie entweder diesen Wert oder
namePattern
an. Wenn Sie dieses Flag verwenden undCOUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn SieperInstanceProperties
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.LOCATION_POLICY: die Zonen, die in einer Region ein- oder ausgeschlossen werden sollen. Verwenden Sie eine Liste von Schlüssel/Wert-Paaren, wobei die Zone als Schlüssel und die Richtlinie als Wert dienen. Gültige Werte für die Richtlinie sind
ALLOW
, der Standardwert, undDENY
. Hier ein Beispielwert für dieses Feld:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: Die Verteilung der VMs in den angegebenen Zonen. Verwenden Sie das Feld
locationPolicy
, um die Zonen anzugeben. Die folgende Tabelle enthält die gültigen Werte für dieses Feld:Wert Beschreibung ANY_SINGLE_ZONE
Erzwingt die VM-Platzierung innerhalb einer einzelnen Zone und priorisiert die Auslastung nicht verwendeter Reservierungen. Hiermit können Sie zonenübergreifenden ausgehenden Netzwerktraffic vermeiden und die Netzwerklatenz reduzieren. Dies ist der Standardwert. BALANCED
Versucht, VMs gleichmäßig auf alle Zonen in der Region zu verteilen. ANY
Ermöglicht die Verteilung von VMs auf mehrere Zonen in einer Region. Wählt Zonen mit verfügbaren Ressourcen, die nicht verwendete zonale Reservierungen maximieren. NAME_PATTERN ist das Namensmuster für die VMs. Verwenden Sie eine Abfolge von Hash-Zeichen (
#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAMES ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Wenn Sie dieses Flag verwenden und
COUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.ZONE ist die Zone, in der die VMs erstellt werden sollen.
COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn Sie--predefined-names
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.PROJECT_ID: die Projekt-ID.
ZONE ist die Zone, in der die VMs erstellt werden sollen.
NAME_PATTERN ist das Namensmuster für die VMs. Geben Sie entweder diesen Wert oder
perInstanceProperties
an. Verwenden Sie eine Abfolge von Hash-Zeichen (#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAME_1, PREDEFINED_NAME_2 ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Geben Sie entweder diesen Wert oder
namePattern
an. Wenn Sie dieses Flag verwenden undCOUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn SieperInstanceProperties
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.VM_NAME.c.PROJECT_ID.internal
, wenn Sie das globale DNS aktivierenVM_NAME.ZONE.c.PROJECT_ID.internal
, wenn Sie das zonale DNS aktivierenNAME_PATTERN ist das Namensmuster für die VMs. Verwenden Sie eine Abfolge von Hash-Zeichen (
#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAMES ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Wenn Sie dieses Flag verwenden und
COUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.[VM_NAME=HOSTNAME, ...] ist eine Liste von Schlüssel/Wert-Paaren vordefinierter Namen für die VMs und voll qualifizierten Domain-Hostnamen, die Sie den VMs zuweisen möchten. Benutzerdefinierte Hostnamen müssen den RFC 1035-Anforderungen für gültige Hostnamen entsprechen.
REGION ist die Zone, in der die VMs erstellt werden sollen.
COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn Sie--predefined-names
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.LOCATION_POLICY: die Zonen, die in einer Region ein- oder ausgeschlossen werden sollen. Verwenden Sie eine Liste von Schlüssel/Wert-Paaren, wobei die Zone als Schlüssel und die Richtlinie als Wert dienen. Gültige Werte für die Richtlinie sind
ALLOW
, der Standardwert, undDENY
. Hier ein Beispielwert für dieses Feld:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: Die Verteilung der VMs in den angegebenen Zonen. Verwenden Sie das Feld
locationPolicy
, um die Zonen anzugeben. Die folgende Tabelle enthält die gültigen Werte für dieses Feld:Wert Beschreibung ANY_SINGLE_ZONE
Erzwingt die VM-Platzierung innerhalb einer einzelnen Zone und priorisiert die Auslastung nicht verwendeter Reservierungen. Hiermit können Sie zonenübergreifenden ausgehenden Netzwerktraffic vermeiden und die Netzwerklatenz reduzieren. Dies ist der Standardwert. BALANCED
Versucht, VMs gleichmäßig auf alle Zonen in der Region zu verteilen. ANY
Ermöglicht die Verteilung von VMs auf mehrere Zonen in einer Region. Wählt Zonen mit verfügbaren Ressourcen, die nicht verwendete zonale Reservierungen maximieren. PROJECT_ID: die Projekt-ID.
REGION ist die Region, in der die VMs erstellt werden sollen.
NAME_PATTERN ist das Namensmuster für die VMs. Geben Sie entweder diesen Wert oder
perInstanceProperties
an. Verwenden Sie eine Abfolge von Hash-Zeichen (#
) für Compute Engine, um sie durch eine Zahlenfolge zu ersetzen. Wenn Sie z. B.vm-#
für das Namensmuster verwenden, werden VMs mit den Namenvm-1
,vm-2
usw. bis zu der durch--count
angegebenen Anzahl von VMs erzeugt, die kleiner oder gleich der Anzahl von VMs sein muss, die das Namensmuster zulässt.Bei Verwendung eines Namensmusters versucht Compute Engine, Namenskonflikte zu vermeiden. Dazu werden die Namen vorhandener VMs geprüft, die aus vorherigen Anfragen erstellt wurden.
PREDEFINED_NAME_1, PREDEFINED_NAME_2 ist eine Liste vordefinierter Namen für die zu erstellenden VMs. Geben Sie entweder diesen Wert oder
namePattern
an. Wenn Sie dieses Flag verwenden undCOUNT
angeben, mussCOUNT
der Anzahl der angegebenen Namen entsprechen.HOSTNAME_1, HOSTNAME_2 sind voll qualifizierte Domainnamen, die Sie den VMs zuweisen möchten. Benutzerdefinierte Hostnamen müssen den RFC 1035-Anforderungen für gültige Hostnamen entsprechen.
Wenn Sie beispielsweise die beiden VMs
vm-1
undvm-2
mit den benutzerdefinierten Hostnamenmy-host1234.example.com
bzw.test.example.com
erstellen möchten, geben Sie das Attributhostname
inperInstanceProperties
so an:{ ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ... },
COUNT ist die Anzahl der zu erstellenden VMs. Diese muss kleiner oder gleich der Anzahl der durch
NAME_PATTERN
zugelassenen VMs sein. Wenn SieperInstanceProperties
verwenden, müssen SieCOUNT
nicht angeben. Wenn Sie jedoch einen Wert angeben, muss dieser der Anzahl der angegebenen Namen entsprechen.MIN_COUNT: die Mindestanzahl der zu erstellenden VMs. In der folgenden Tabelle wird das Verhalten der Anfrage beschrieben, je nachdem, wie Sie dieses Flag festlegen:
Wert Beschreibung Nicht definiert Der Standardwert ist COUNT
. Wenn Compute Engine nicht die Anzahl der vonCOUNT
angegebenen VMs erstellen kann, schlägt die Anfrage fehl und es werden keine VMs erstellt.1
Compute Engine erstellt so viele VMs wie möglich und maximal COUNT
.Größer als 1
und kleiner alsCOUNT
Compute Engine erstellt mindestens MIN_COUNT
VMs bis zu maximalCOUNT
VMs WennMIN_COUNT
VMs nicht erstellt werden können, schlägt die Anfrage fehl und es werden keine VMs erstellt.LOCATION_POLICY: die Zonen, die in einer Region ein- oder ausgeschlossen werden sollen. Verwenden Sie eine Liste von Schlüssel/Wert-Paaren, wobei die Zone als Schlüssel und die Richtlinie als Wert dienen. Gültige Werte für die Richtlinie sind
ALLOW
, der Standardwert, undDENY
. Hier ein Beispielwert für dieses Feld:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: Die Verteilung der VMs in den angegebenen Zonen. Verwenden Sie das Feld
locationPolicy
, um die Zonen anzugeben. Die folgende Tabelle enthält die gültigen Werte für dieses Feld:Wert Beschreibung ANY_SINGLE_ZONE
Erzwingt die VM-Platzierung innerhalb einer einzelnen Zone und priorisiert die Auslastung nicht verwendeter Reservierungen. Hiermit können Sie zonenübergreifenden ausgehenden Netzwerktraffic vermeiden und die Netzwerklatenz reduzieren. Dies ist der Standardwert. BALANCED
Versucht, VMs gleichmäßig auf alle Zonen in der Region zu verteilen. ANY
Ermöglicht die Verteilung von VMs auf mehrere Zonen in einer Region. Wählt Zonen mit verfügbaren Ressourcen, die nicht verwendete zonale Reservierungen maximieren. PROJECT_ID
ist die ID des Projekts, in dem Sie VMs erstellen.REGION
: die Region, in der Sie VMs erstellenZONE
: die Zone, in der Sie VMs erstellenOPERATION_ID
: die ID des Bulk-Insert-Vorgangsstatus
: der Status ist einer der folgenden:CREATING
: VM wird erstelltROLLING_BACK
: Die Anfrage ist fehlgeschlagen und wird zurückgesetzt.DONE
: Die VM-Erstellung oder das Rollback wurde erfolgreich abgeschlossen.
targetVmCount
: Anzahl der VMs, die in der angegebenen Zone erstellt werden sollencreatedVmCount
: Anzahl der VMs, die bereits in der angegebenen Zone erstellt wurdenfailedToCreateVmCount
: Anzahl der VMs, die in der angegebenen Zone nicht erstellt werden konntendeletedVmCount
ist die Anzahl der VMs, die im Rahmen eines Rollbacks eines fehlgeschlagenen Vorgangs gelöscht wurdenRufen Sie aus der von der Anfrage zurückgegebenen
Operation
den Wert des AttributsoperationGroupId
ab.Verwenden Sie das Attribut
operationGroupId
als Filter mit dem Befehlgcloud compute operations list
, um alle Vorgänge und alle Zonen im Projekt nach VMs zu durchsuchen, die mit der regionalen oder zonalen Anfrage verknüpft sind:gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID)
Führen Sie einen der folgenden Schritte aus, um die restlichen Attribute der VM zu erhalten:
In der Liste der Vorgänge steht
targetLink
für den Pfad der VM. Verwenden Sie den Befehlgcloud compute instances describe
mit diesem Pfad als Namen der VM, um die Attribute der VM zu erhalten:gcloud compute instances describe VM_NAME
Verwenden Sie den Befehl
gcloud compute instances list
mit einem Filter, der die Namen der VMs aus der Liste der Vorgänge enthält:gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Verwenden Sie den Befehl
gcloud compute instances list
, um die Attribute der VMs aus allen Zonen und Regionen abzurufen. Filtern Sie entweder nach einem Label, das für die Instanzen eindeutig ist, oder nach Namen der Nutzer:gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Rufen Sie aus der von der Anfrage zurückgegebenen
Operation
den Wert des AttributsoperationGroupId
ab.Verwenden Sie das Attribut
operationGroupId
, um die Liste der VM-Vorgänge abzurufen, die der regionalen oder zonalen Anfrage zugeordnet sind:Wenn Sie eine regionale Anfrage gesendet haben, verwenden Sie die Methode
globalOperations.aggregatedList
und geben Sie das AttributoperationGroupId
als Filter ein, um in allen Vorgängen und Zonen im Projekt zu suchen.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID)
Wenn Sie eine zonale Anfrage gesendet haben, verwenden Sie die Methode
zoneOperations.get
und fügen Sie das AttributoperationGroupId
in den Anfragetext ein, um die Liste der Vorgänge in dieser Zone aufzurufen:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
Führen Sie einen der folgenden Schritte aus, um die restlichen Attribute der VM zu erhalten:
In der Liste der Vorgänge steht
targetLink
für den Pfad der VM. Verwenden Sie die Methodeinstances.get
mit diesem Pfad als Namen der VM, um alle Attribute der VM abzurufen:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME
Verwenden Sie die Methode
instances.get
mit einem Filter, der die Namen der VMs aus der Liste der Vorgänge enthält:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Verwenden Sie die Methode
instances.aggregatedList
, um die Attribute der VMs aus allen Zonen und Regionen abzurufen. Filtern Sie entweder nach einem Label, das für die Instanzen eindeutig ist, oder nach Namen der Nutzer:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Geben Sie die Anzahl der VMs an, die innerhalb einer Zone erstellt werden sollen.
nTarget = 1000
Geben Sie die Regionen an, in denen die VMs erstellt werden sollen.
acceptableRegions = ["us-central1", "us-east1", "us-west1"]
Wiederholen Sie die Regionen und versuchen Sie, die VMs in jeder Region zu erstellen, bis sie erfolgreich sind.
for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
Geben Sie die Anzahl der zu erstellenden VMs und die Region an, in der sie erstellt werden sollen.
nTarget = 1000 region = "us-central1"
Geben Sie die Maschinenfamilien an, für die die VMs erstellt werden sollen.
acceptableMachineFamilies = ["n2","c2","e2","n1"]
Iterieren Sie durch die Maschinentypen und versuchen Sie, die VMs so lange zu erstellen, bis dies erfolgreich ist.
for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
Geben Sie die Anzahl der zu erstellenden VMs, einen Zähler für die Gesamtzahl der erstellten VMs, die Region, in der die VMs erstellt werden und eine Variable zum Speichern der Zone an, in der Compute Engine die VMs erstellt.
nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
Senden Sie eine erste Anfrage, um 5.000 VMs zu erstellen, die von der Anfrage zurückgegebene Zone zu speichern und den Zähler der Anzahl der erstellten VMs zu aktualisieren.
call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
Stellen Sie weitere Anfragen zum Erstellen von bis zu 5.000 VMs gleichzeitig in der Zone, bis Compute Engine die festgelegte Anzahl von VMs erstellt.
while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
Geben Sie die Anzahl der zu erstellenden VMs, die Zone, in der sie erstellt werden sollen, sowie eine Datenstruktur zur Speicherung der Namen an.
nTarget = 1000 targetZone = "us-central-1a" names = []
Generieren Sie die Musternamen für die VMs und fügen Sie die Namen der Datenstruktur hinzu.
for n in range(0, 1000): names.push("instance-%d".format(n))
Erstellen Sie die VMs und geben Sie die Namen mit
perInstanceProperties
an.call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
Rufen Sie die Details der VMs mithilfe der Methode
instances.list
mit einem Filter für die Namen der VMs ab, für die Sie die Details abrufen möchten.instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
VMs zu einer nicht verwalteten Instanzgruppe hinzufügen Wenn Sie VMs zu einer nicht verwalteten Instanzgruppe hinzufügen möchten, können Sie Cloud Monitoring verwenden. Nicht verwaltete Instanzgruppen bieten kein Load-Balancing und keine Verwaltung des VM-Lebenszyklus.
Labels verwenden. Mit Labels können Sie Ressourcen mithilfe von Schlüssel/Wert-Paaren organisieren.
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
Um die Berechtigungen zu erhalten, die Sie für die Erstellung von VMs im Bulk benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) für das Projekt zu gewähren. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen mehrerer VMs erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um VMs im Bulk zu erstellen:
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
VMs im Bulk in einer Region erstellen
Wenn Sie in einer Region VMs im Bulk erstellen möchten, verwenden Sie die gcloud CLI oder die Compute Engine API.
Wenn Sie einen Maschinentyp oder Support für zusätzliche Hardware wie eine GPU oder eine lokale SSD angeben, werden die VMs in Compute Engine in einer Zone innerhalb der Region platziert, die den Maschinentyp und die zusätzliche Hardware unterstützt.
gcloud
Wenn Sie VMs in einer Region im Bulk erstellen möchten, verwenden Sie den folgenden
gcloud compute instances bulk create
-Befehl:gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --region=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT \ ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_SHAPE ]
Ersetzen Sie dabei Folgendes:
REST
Verwenden Sie die folgende
instances.bulkInsert
-Methode, um VMs in einer Region im Bulk zu erstellen:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_SHAPE" ... }
Ersetzen Sie dabei Folgendes:
VMs im Bulk in einer Zone erstellen
Wenn Sie VMs im Bulk in einer Zone erstellen möchten, verwenden Sie die gcloud CLI oder die Compute Engine API.
gcloud
Verwenden Sie den folgenden Befehl
gcloud compute instances bulk create
, um in einer bestimmten Zone VMs im Bulk zu erstellen.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]
Ersetzen Sie dabei Folgendes:
REST
Verwenden Sie die folgende
instances.bulkInsert
-Methode, um VMs in einer Region im Bulk zu erstellen.POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, ... }
Ersetzen Sie dabei Folgendes:
VMs mit benutzerdefinierten Hostnamen im Bulk erstellen
Sie können VMs mit benutzerdefinierten Hostnamen im Bulk in einer Region oder in einer Zone erstellen, indem Sie die gcloud CLI oder die Compute Engine API verwenden.
Sie müssen den DNS-Eintrag für Ihren benutzerdefinierten Hostnamen manuell konfigurieren. Weitere Informationen finden Sie unter Einschränkungen.
Wenn Sie keinen Hostnamen angeben, legt Compute Engine den Hostnamen für VMs auf eine der folgenden Optionen fest:
Weitere Informationen finden Sie unter Interne DNS-Namen.
gcloud
Verwenden Sie den folgenden
gcloud beta compute instances bulk create
-Befehl, um VMs im Bulk mit benutzerdefinierten Hostnamen in einer bestimmten Region zu erstellen.gcloud beta compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --per-instance-hostnames=[VM_NAME=HOSTNAME,...] \ --zone=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_SHAPE ]
Ersetzen Sie dabei Folgendes:
REST
Verwenden Sie die folgende
instances.bulkInsert
-Methode, um in einer bestimmten Region VMs mit benutzerdefinierten Hostnamen im Bulk zu erstellen:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {"hostname": HOSTNAME_1}, "PREDEFINED_NAME_2": {"hostname": HOSTNAME_2}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_SHAPE" ... }
Ersetzen Sie dabei Folgendes:
Status einer Anfrage zum Erstellen von VMs im Bulk prüfen
Wenn Sie eine Mutationsanfrage erstellen, gibt Compute Engine eine
operation
-Ressource zurück, die Sie abfragen können, um den Status des Vorgangs abzurufen. Weitere Informationen finden Sie unter API-Antworten verarbeiten.Wenn Sie den Status einer Bulk-Insert-Anfrage abrufen möchten, senden Sie eine HTTP-
GET
-Anfrage an die Ressourceoperation
:GET compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID
Senden Sie die folgende Anfrage, um den Status einer regionalen Bulk-Insert-Anfrage abzurufen:
GET compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID
Ersetzen Sie dabei Folgendes:
Das Objekt
instancesBulkInsertOperationMetadata
in der Antwort enthält die folgenden Details des Vorgangs:Das Feld
progress
in der Antwort stellt den Prozentsatz des Abschlusses des Vorgangs dar.Der Status des Bulk-Insert-Vorgangs lautet
RUNNING
, bis Compute Engine mindestens die Mindestanzahl von VMs erstellt hat und keine weitere VM-Erstellung oder ein Rollback der Anfrage mehr erfolgt.Wenn der Bulk-Insert-Vorgang ausgeführt wird, sollte eine Antwort ähnlich der folgenden angezeigt werden:
{ "kind" : "compute#operation", "id": "4653028658507445766", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationType": "bulkInsert", "targetLink": "https://googleapis.com/compute/v1/projects/my-project" "targetId": 4653028658507445766, "status": "RUNNING", "progress": 2, "user": "example@google.com", "insertTime": "2023-04-23T09:57:13.474-07:00", "startTime": "2023-04-23T09:57:13.474-07:00", "selfLink": "https://googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "metadata": "instances_bulk_insert_operation_metadata": { "per_location_status": { "zones/us-central1-a": { "status": "CREATING", "targetVmCount": 50, "createdVmCount": 1 } } } }
In diesem Beispiel wurde eine Instanz erfolgreich erstellt und der Vorgang ist zu 2 % abgeschlossen.
Der Vorgang gibt den Status
DONE
zurück, wenn Compute Engine erfolgreich mindestens die vonminCount
angegebene Mindestanzahl von VMs erstellt hat oder wenn Compute Engine das Rollback der Anfrage ausführt. Nach erfolgreicher Erstellung der angeforderten Anzahl von VMs erhalten Sie eine Antwort ähnlich der folgenden:{ "endTime": "2023-04-23T09:58:13.474-07:00", "id": "5053101474378293244", "insertTime": "2023-04-23T09:57:13.474-07:00", "instancesBulkInsertOperationMetadata": { "perLocationStatus": { "zones/us-central1-a": { "status": "DONE", "createdVmCount": 50, "targetVmCount": 50 } } }, "kind": "compute#operation", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "operationType": "bulkInsert", "progress": 100, "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "startTime": "2023-09-11T16:21:55.629-07:00", "status": "DONE", "targetId": "625521788110", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project", "user": "example@google.com", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a" }
Weitere Informationen finden Sie in der Dokumentation zum Objekt
instancesBulkInsertOperationMetadata
.Status einer einzelnen VM prüfen
Zum Prüfen des Status einer einzelnen VM, die aus einer Anfrage zum Erstellen von VMs im Bulk erstellt wurde, verwenden Sie die gcloud CLI oder die Compute Engine API.
gcloud
REST
Pseudocode-Beispiele
Die folgenden Pseudocode-Beispiele zeigen, wie Anfragen zum Erstellen von VMs im Bulk angepasst werden.
VMs im Bulk in einer Region aus einer Reihe von Regionen erstellen
Der folgende Pseudocode beschreibt, wie 1.000 VMs in einer Region aus einer Reihe von Regionen erstellt werden. Wenn Sie versuchen, VMs im Bulk in einer Region aus einer Reihe von Regionen zu erstellen, prüft die Anfrage zuerst die Kapazität. Wenn nicht genug Kapazitäten vorhanden sind, schlägt die Anfrage sofort fehl und versucht es mit der nächsten Region in der Gruppe.
VMs im Bulk in einer Zone auf einem Maschinentyp erstellen
Der folgende Pseudocode beschreibt, wie mehrere VMs in einer Zone auf einem bestimmten Maschinentyp erstellt werden. Wenn Sie versuchen, VMs auf demselben Maschinentyp im Bulk zu erstellen, prüft die Anfrage zuerst die Verfügbarkeit dieser Maschinentypen. Wenn nicht genügend verfügbarer Maschinentyp vorhanden ist, schlägt die Anfrage sofort fehl und versucht es mit dem nächsten Maschinentyp noch einmal.
Mehr als 5.000 VMs in einer Zone erstellen
Wenn Sie VMs im Bulk erstellen, können Sie mit jeder Anfrage nur 5.000 VMs erstellen. Im folgenden Pseudocode wird beschrieben, wie mehr als 5.000 VMs in einer Zone durch Senden mehrerer Anfragen erstellt werden.
VMs im Bulk erstellen und ihren Status ansehen
Das folgende Verfahren zeigt Ihnen, wie Sie eine Gruppe von VMs mit vordefinierten Namen erstellen und dann deren Status aufrufen:
Nächste Schritte
Nachdem Sie VMs im Bulk erstellt haben, führen Sie einen oder beide der folgenden Schritte aus, um die Verwaltung dieser VMs zu vereinfachen:
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: 2024-11-20 (UTC).
-