Sie können eine einzelne Anfrage über die Google Cloud CLI oder die Compute Engine API verwenden, um mehrere Instanzattribute zu aktualisieren und die Instanz bei Bedarf optional neu zu starten. Die Aktualisierungsmethode verarbeitet die Logik zur Validierung der aktualisierten Instanzattribute und sorgt dafür, dass die erforderlichen Ressourcen verfügbar sind, um die Aktualisierung erfolgreich abzuschließen. Wenn die Anfrage ungültige Attribute enthält oder die angeforderten Ressourcen nicht verfügbar sind, gibt die Anfrage einen Fehler zurück und nimmt keine Änderungen an Ihrer Instanz vor. Dadurch wird die Instanz vor Teilaktualisierungen geschützt und es wird verhindert, dass die Instanz gestoppt wird und nicht wieder auf für einen Neustart nötige Ressourcen zugreifen kann.
Informationen zum Aktualisieren der Netzwerkschnittstellen (networkInterfaces) einer Instanz finden Sie unter Netzwerkschnittstellen einer Instanz aktualisieren.
Wenn Sie Dynamic Network Interfaces zu einer Instanz hinzufügen oder daraus entfernen möchten, verwenden Sie die folgenden Verfahren, anstatt die Instanzattribute zu aktualisieren:
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 Cloud de Confiance by S3NS Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Wählen Sie den Tab für die gewünschte Verwendung der Beispiele auf dieser Seite aus:
Console
Wenn Sie über die Cloud de Confiance Console auf Cloud de Confiance by S3NS -Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud init
-
- Legen Sie eine Standardregion und -zone fest.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.
Weitere Informationen finden Sie in der Dokumentation zur Cloud de Confiance -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Beschränkungen
- Anfragen zur Instanzaktualisierung mit der gcloud CLI oder der Compute Engine API unterstützen keine
PATCH-Semantik. Die Instanzressource in der Aktualisierungsanfrage muss alle Attribute der Instanz enthalten. Attribute, die in der Instanzkonfiguration der Aktualisierungsanfrage fehlen, werden als von der Instanz gelöscht betrachtet. - Sie können nur bestimmte Liste von Attributen aktualisieren.
- Wenn an die Instanz lokale SSDs angehängt sind, können Sie keine Attribute aktualisieren, für die die Instanz neu gestartet werden muss, während die Instanz ausgeführt wird. Sie können die Instanz löschen und dann neu erstellen oder die Instanz beenden, die Attribute aktualisieren und die Instanz dann neu starten.
- Sie können das Attribut
networkInterfaceseiner Instanz aktualisieren, aber keine virtuellen Netzwerkkarten (vNICs) hinzufügen oder entfernen. - Wenn eine Instanz Ressourcen verwendet, die nur in der Betaversion der Compute Engine API verfügbar sind, müssen Sie diese Attribute mit der richtigen Version der Methode
instances.updateaktualisieren. Wenn Sie zum Beispiel eine Instanz mit der Beta Compute Engine API erstellen und die Instanz mit einer Ressource konfigurieren, die nur die Betaversion der API erkennt, müssen Sie diese Ressourcen auch mit der Betaversion der Methodeinstances.updateaktualisieren. Die v1-Version der Methodeinstances.updateerkennt die Betaressourcen, die von Ihrer Instanz verwendet werden, nicht. Daher werden diese Betaressourcen während des Aktualisierungsprozesses aus der Instanzkonfiguration gelöscht. Dieses Verhalten gilt auch für Ressourcen in der Alpha-API.
Berechtigungen
Zum Aktualisieren von Instanzen benötigen Sie die Berechtigung compute.instances.update.
Diese Berechtigung ist in mehreren vorhandenen IAM-Rollen (Identity and Access Management, Identitäts- und Zugriffsverwaltung) enthalten.
Sie benötigen außerdem die Berechtigung, die Ressourcen zu verwenden, die Sie auf der Instanz ändern möchten. Wenn Sie einer Instanz beispielsweise ein Laufwerk hinzufügen möchten, benötigen Sie die folgenden Berechtigungen:
- Die Berechtigung
compute.instances.updatefür die Instanz, die Sie aktualisieren möchten. - Entweder die Berechtigung
compute.disks.usefür ein vorhandenes Laufwerk odercompute.disks.createfür ein Projekt, in dem Sie ein neues Laufwerk erstellen möchten.
Best Practices
Achten Sie auf die folgenden Best Practices, damit die Schnittstelle zur Instanzaktualisierung so effektiv wie möglich funktioniert:
- Verwenden Sie nach Möglichkeit immer dieselbe Version der Compute Engine API, um Instanzen zu erstellen, festzulegen und zu aktualisieren. Dadurch wird sichergestellt, dass Sie alle Instanzressourcen aktualisieren und ändern können, wenn sie nur in einer Version der API verfügbar sind.
- Sie können die Methode
instances.updateauch zum Aktualisieren von Instanzen in einer verwalteten Instanzgruppe verwenden. In den meisten Fällen ist es jedoch besser, stattdessen die Instanzvorlage der Gruppe zu ändern und dieses Update auf die verwaltete Instanzgruppe anzuwenden. - Wenn Sie eine Ressource aktualisieren, die von der Instanz verwendet wird, verwenden Sie den Befehl zum Aktualisieren dieser Ressourceninstanz anstelle der Instanzeigenschaften, z. B.:
- Sie können Laufwerke mit der Methode
disks.updateändern. - Wenn Sie das von der Instanz verwendete Netzwerk ändern möchten, können Sie die Methode
instances.updateNetworkInterfaceverwenden. Dazu muss die Instanz nicht beendet werden.
- Sie können Laufwerke mit der Methode
Attribute, die aktualisiert werden können
Sie können mit der Aktualisierungsmethode nur bestimmte Instanzattribute ändern. Für die Aktualisierung einiger Attribute muss die Instanz neu gestartet werden. Damit versehentliche Neustarts der Instanzen verhindert werden, muss in der Anfrage festgelegt sein, welche Aktion für Ihre Instanzen zulässig ist. Sie können in der Anfrage eine der folgenden Aktionen angeben:
NO_EFFECT: Bei der Aktualisierungsanfrage wird geprüft, ob die Anfrage gültig ist und ob die Ressourcen verfügbar sind. Die Aktualisierung wird jedoch nicht ausgeführt. Verwenden Sie diese Aktion, um Befehle zu testen, ohne tatsächliche Aktualisierungen zu starten.REFRESH: Die Aktualisierungsanfrage wird nur ausgeführt, wenn für die geänderten Instanzeigenschaften kein Neustart der Instanz erforderlich ist. Die Anfrage gibt den FehlerINFEASIBLEzurück, wenn die Anfrage gültig ist, aber ein Neustart erforderlich ist.RESTART: Wenn für das Update ein Neustart der Instanz erforderlich ist, wird die Instanz vom System neu gestartet.
Für die Aktualisierung der folgenden Attribute ist ein Neustart (RESTART) erforderlich:
disks: Bootlaufwerke, einschließlich aller Laufwerke (disks.deviceName)displayDeviceenableNestedVirtualizationguestAcceleratorsmachineTypeminCpuPlatformnetworkInterfacesnetworkPerformanceConfigperformanceMonitoringUnitreservationAffinity: Sie können die Art und Weise, wie die Instanz Reservierungen (reservationAffinity.consumeReservationType) nutzt, nur so aktualisieren:- Von der Nutzung jeder übereinstimmenden Reservierung (
ANY_RESERVATION) bis zur Nichtnutzung von Reservierungen (NO_RESERVATION) - Von „Keine Reservierungen nutzen“ (
NO_RESERVATION) zu „Alle übereinstimmenden Reservierungen nutzen“ (ANY_RESERVATION)
- Von der Nutzung jeder übereinstimmenden Reservierung (
resourcePoliciesschedulingserviceAccountsshieldedInstanceConfigthreadsPerCorevisibleCoreCount
Für die Aktualisierung der folgenden Attribute ist nur eine Aktualisierung (REFRESH) erforderlich:
canIpForwarddeletionProtectiondescriptiondisks: Attribute des Nicht-Bootlaufwerks, mit Ausnahme vondeviceNamelabelsmetadatanodeAffinitiestags
Instanzattribute aktualisieren
Führen Sie die folgenden Schritte aus, um Ihre Instanz zu aktualisieren:
- Exportieren Sie die vorhandenen Instanzkonfigurationsattribute.
- Ändern Sie die Attribute der Instanzkonfiguration.
- Führen Sie eine Testanfrage aus, indem Sie die umfangreichste Aktion
NO_EFFECTangeben. In der Antwort sind ungültige Felder in der Instanzkonfiguration sowie die Aktion angegeben, die zum Anwenden der Änderungen erforderlich ist. - Wenn die Konfiguration akzeptabel ist, fordern Sie eine Instanzaktualisierung an und geben Sie die umfangreichste Aktion an, die für Ihr Instanzupdate akzeptabel ist.
Der Aktualisierungsvorgang wird nur dann gestartet, wenn Ihre Anfrage die folgenden Anforderungen erfüllt:
- Das Instanzattribut
fingerprintin Ihrer Anfrage muss mit demfingerprintder Instanz übereinstimmen, die Sie aktualisieren möchten. Dadurch wird verhindert, dass Aktualisierungsanfragen durch andere gleichzeitige für dieselbe Instanz überschrieben werden. - Die Attribute in Ihrer Aktualisierungsanfrage müssen gültig sein.
- Die angeforderten Ressourcen müssen verfügbar sein.
- Wenn für die Attribute in Ihrer Anfrage die Instanz neu gestartet werden muss, muss in der Anfrage
RESTARTals zulässige Aktion angegeben sein.
Wenn die Anforderungen erfüllt sind, startet das System den Instanzaktualisierungsvorgang. Andernfalls nimmt das System keine Änderungen an der vorhandenen Instanz oder der zugehörigen Konfiguration vor.
Sie können Aktualisierungen entweder mit der gcloud CLI oder der Compute Engine API initiieren.
gcloud
Verwenden Sie den Befehl
instances export, um die vorhandenen Instanzattribute zu exportieren:gcloud compute instances export INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --destination=FILE_PATHErsetzen Sie dabei Folgendes:
INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.FILE_PATH: der Ausgabepfad, unter dem Sie die Instanzkonfigurationsdatei auf Ihrer lokalen Workstation speichern möchten.
Ändern Sie mit einem Texteditor ein oder mehrere Attribute in der exportierten Konfigurationsdatei der Instanz. Informationen dazu, welche Attribute Sie aktualisieren können, finden Sie in der Liste der aktualisierbaren Attribute in diesem Dokument. Wenn Sie beispielsweise den Maschinentyp der Instanz ändern möchten, ändern Sie das Attribut
machineType:... machineType: https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE ...
Ersetzen Sie Folgendes:
PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.MACHINE_TYPE: der Maschinentyp der Instanz, z. B.n1-standard-2.
Führen Sie mit dem Befehl
instances update-from-fileeine Testaktualisierung der Zielinstanz aus. Geben Sie das Flag--most-disruptive-allowed-action=NO_EFFECTan. In der Antwort werden falsch konfigurierte Attribute angegeben und es wird festgelegt, ob die AktionRESTARToderREFRESHerforderlich ist, um die Aktualisierung anzuwenden.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action NO_EFFECTErsetzen Sie dabei Folgendes:
INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.FILE_PATH: der Pfad zur geänderten Instanzkonfigurationsdatei auf Ihrer lokalen Workstation.
Aktualisieren Sie die Zielinstanz mit dem Befehl
instances update-from-file. Wenn Sie ein Attribut aktualisieren, für das die Instanz neu gestartet werden muss, fügen Sie das Flag--most-disruptive-allowed-action=RESTARTein. Wenn für die Eigenschaften kein Neustart erforderlich ist, geben Sie das Flag--most-disruptive-allowed-action=REFRESHan. Welche Properties einen Neustart erfordern, erfahren Sie in diesem Dokument in der Liste der aktualisierbaren Properties.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action ALLOWED_ACTIONErsetzen Sie Folgendes:
INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.FILE_PATH: der Pfad zur geänderten Instanzkonfigurationsdatei auf Ihrer lokalen Workstation.ALLOWED_ACTIONdefiniert, wie umfangreich die Aktualisierung sein kann. Geben SieRESTARTan, um einen vollständigen Neustart der Instanz zu ermöglichen. Geben SieREFRESHan, um die Instanz nur zu aktualisieren, wenn für die geänderten Attribute kein Neustart der Instanz erforderlich ist.
Wenn die Aktualisierungsanfrage gültig ist und die erforderlichen Ressourcen verfügbar sind, beginnt die Instanzaktualisierung. Sie können den Status dieses Vorgangs durch Aufrufen der Audit-Logs überwachen.
Wenn das Update einen Neustart erfordert und Ihr Befehl ein RESTART zulässt, wird die Instanz neu gestartet, um die Änderungen zu übernehmen.
REST
Verwenden Sie die Methode
instances.getin der Compute Engine API, um die vorhandenen Instanzattribute zu exportieren:GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Dabei gilt:
PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.
Diese Anfrage gibt eine Instanzressourcendefinition zurück.
Ändern Sie in der Antwort die Eigenschaften der Instanzressource. Eine Liste der aktualisierbaren Attribute finden Sie in diesem Dokument unter Liste der aktualisierbaren Attribute. Wenn Sie beispielsweise den Maschinentyp der Instanz ändern möchten, ändern Sie das Attribut
machineType. Sie können mehrere Attribute ändern.{ ... "machineType": "https://www.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE", ... }Dabei gilt:
PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.MACHINE_TYPE: der Maschinentyp der Instanz, z. B.n1-standard-2.
Verwenden Sie die Methode
instances.updatein der Compute Engine API und geben Sie den AbfrageparametermostDisruptiveAllowedAction=NO_EFFECTan, um ein Test-Update der Zielinstanz auszuführen. In der Antwort werden falsch konfigurierte Attribute angegeben und es wird angezeigt, ob eineRESTART- oderREFRESH-Aktion erforderlich ist, um das Update anzuwenden.PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=NO_EFFECT { ... "machineType": "https://www.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ... }Ersetzen Sie Folgendes:
PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.
Verwenden Sie die Methode
instances.updatein der Compute Engine API, um die Zielinstanz zu aktualisieren. Wenn Sie ein Attribut aktualisieren, für das ein Neustart der Instanz erforderlich ist, fügen Sie den AbfrageparametermostDisruptiveAllowedAction=RESTARTein, um anzugeben, dass die Instanz während der Aktualisierung neu gestartet werden kann. Wenn für die Eigenschaften kein Neustart erforderlich ist, geben Sie den AbfrageparametermostDisruptiveAllowedAction=REFRESHan. Welche Attribute einen Neustart erfordern, erfahren Sie in der Liste der aktualisierbaren Attribute in diesem Dokument. Fügen Sie den vollständigen Text für die geänderte Instanzressource ein. Im folgenden Beispiel wird der Maschinentyp im Hauptteil inn1-standard-2geändert:PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION { ... "machineType": "https://www.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ... }Ersetzen Sie Folgendes:
PROJECT_IDist die Projekt-ID für diese Anfrage.ZONEist die Zone für diese Instanz.INSTANCE_NAMEist der Name der Instanz, die Sie exportieren möchten.ALLOWED_ACTIONdefiniert, wie umfangreich die Aktualisierung sein kann. Geben SieRESTARTan, um einen vollständigen Neustart der Instanz zu ermöglichen. Geben SieREFRESHan, um die Instanz nur zu aktualisieren, wenn für die geänderten Attribute kein Neustart der Instanz erforderlich ist.
Wenn die Aktualisierungsanfrage gültig ist und die erforderlichen Ressourcen verfügbar sind, beginnt die Instanzaktualisierung. Sie können den Status dieses Vorgangs durch Aufrufen der Audit-Logs überwachen.
Wenn das Update einen Neustart erfordert und Ihr Befehl ein RESTART zulässt, wird die Instanz neu gestartet, um die Änderungen zu übernehmen.
Nächste Schritte
- Prüfen Sie den Status der Instanz.
- Ressourcen in einer bestimmten Zone reservieren
- Netzwerkschnittstellen für eine Instanz aktualisieren