Jeder Metadateneintrag wird auf dem Metadatenserver als Schlüssel/Wert-Paare gespeichert. Bei Metadatenschlüsseln wird zwischen Groß- und Kleinschreibung unterschieden. Ihre Schlüssel können entweder vordefinierte oder benutzerdefinierte Metadatenschlüssel sein.
Mit benutzerdefinierten Metadaten können Sie eigene Metadaten-Schlüssel/Wert-Paare auf einer einzelnen VM oder in einem Projekt erstellen und verwenden. Sie können neue benutzerdefinierte Metadatenschlüssel hinzufügen, die Werte vorhandener Schlüssel aktualisieren und benutzerdefinierte Metadateneinträge entfernen, wenn Sie diese nicht mehr benötigen. Das Festlegen benutzerdefinierter Metadaten ist nützlich, um beliebige Werte an VMs in einem Projekt zu übergeben. Es ist auch nützlich zum Erstellen von Startscripts und Shutdown-Scripts.
Dieses Dokument enthält Informationen zu folgenden Themen:
- Benutzerdefinierte Metadaten auf VMs hinzufügen oder aktualisieren
- Benutzerdefinierte Metadaten aus VMs entfernen
Hinweise
- Sehen Sie sich die Grundlagen dazu an, wie Sie VM-Metadaten für Compute Engine definieren, kategorisieren und anordnen können. Weitere Informationen finden Sie unter Informationen zu VM-Metadaten.
-
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:
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.
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) für die VM oder das Projekt - Wenn Ihre VMs Dienstkonten verwenden: Service Account User (
roles/iam.serviceAccountUser
) für das Dienstkonto oder Projekt -
Wenn Ihre VMs Dienstkonten verwenden:
iam.serviceAccounts.actAs
-
So können Sie benutzerdefinierte Projektmetadaten hinzufügen, aktualisieren oder entfernen:
compute.projects.get
compute.projects.setCommonInstanceMetadata
-
So können Sie benutzerdefinierte zonale Metadaten hinzufügen, aktualisieren oder entfernen:
-
compute.instanceSettings.get
-
compute.instanceSettings.update
-
-
So können Sie benutzerdefinierte Instanzmetadaten hinzufügen, aktualisieren oder entfernen:
-
compute.instances.get
-
compute.instances.setMetadata
-
- Jeder Metadaten-
key
darf maximal 128 Byte groß sein. Bei jedem Metadaten-
key
wird zwischen Groß- und Kleinschreibung unterschieden.Für zonale Metadaten können Sie in Compute Engine nicht zwei separate Metadatenschlüssel mit demselben String erstellen, selbst wenn sich die Groß-/Kleinschreibung unterscheidet. Wenn Sie beispielsweise bereits einen benutzerdefinierten Metadatenschlüssel für zonale Metadaten namens
project-zonal-metadata-key
haben, können Sie für zonale Metadaten in dieser Zone keine neuen Metadatenschlüssel erstellen, z. B.Project-Zonal-Metadata-Key
,PROJECT-ZONAL-METADATA-KEY
oder eine andere Variante des gleichen Strings.Für jeden Metadaten-
value
gilt ein Höchstwert von 256 KB.Bei allen Metadaten-
value
wird die Groß- und Kleinschreibung berücksichtigt, mit Ausnahme von booleschen Werten.- Benutzerdefinierte Projektmetadaten festlegen, um benutzerdefinierte Projektmetadaten für alle VMs in Ihrem Projekt hinzuzufügen oder zu aktualisieren.
- Benutzerdefinierte zonale Metadaten festlegen, um benutzerdefinierte Metadaten mit einem zonalen Bereich für VMs innerhalb des Projekts hinzuzufügen oder zu aktualisieren.
- Benutzerdefinierte Instanzmetadaten festlegen, um benutzerdefinierte Instanzmetadaten für eine bestimmte VM hinzuzufügen oder zu aktualisieren.
Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Standardmäßig wird die Seite Metadaten auf dem Tab Zonale Metadaten geöffnet.Klicken Sie auf den Tab Projektmetadaten.
Der Tab Projektmetadaten wird geöffnet. Auf dem Tab Metadaten für Projektmetadaten wird eine Liste aller benutzerdefinierten Projektmetadateneinträge für Ihr Projekt angezeigt.
Klicken Sie oben auf der Seite auf
Bearbeiten.Um neue benutzerdefinierte Projektmetadateneinträge hinzuzufügen, gehen Sie auf dem Tab Metadaten für Projektmetadaten so vor:
- Klicken Sie zum Ende der Seite und auf Element hinzufügen.
- Geben Sie im Feld Schlüssel den Namen Ihres benutzerdefinierten Metadatenschlüssels ein.
- Geben Sie im Feld Wert den benutzerdefinierten Wert für die Projektmetadaten ein.
- Optional. Wenn Sie weitere benutzerdefinierte Projektmetadateneinträge hinzufügen möchten, wiederholen Sie die vorherigen Schritte für jeden Metadateneintrag, den Sie hinzufügen möchten.
- Klicken Sie auf Speichern, um das Hinzufügen Ihrer benutzerdefinierten Projektmetadateneinträge abzuschließen.
So bearbeiten Sie vorhandene benutzerdefinierte Projektmetadateneinträge:
- Wechseln Sie zu dem Metadateneintrag, den Sie bearbeiten möchten.
- Geben Sie im Feld Schlüssel für diesen Eintrag den neuen Namen ein, um den Namen eines bestimmten benutzerdefinierten Metadatenschlüssels zu aktualisieren.
- Geben Sie im Feld Wert für diesen Eintrag den neuen Wert ein, um den Wert eines benutzerdefinierten Projektmetadateneintrags zu aktualisieren.
- Optional. Um einen bestimmten benutzerdefinierten Projektmetadateneintrag zu entfernen, klicken Sie auf das Löschsymbol neben dem Metadateneintrag.
- Wenn Sie mehrere benutzerdefinierte Projektmetadateneinträge bearbeiten möchten, wiederholen Sie die vorherigen Schritte für jeden Metadateneintrag, den Sie bearbeiten möchten.
- Klicken Sie auf Speichern, um die Bearbeitung der benutzerdefinierten Projektmetadateneinträge abzuschließen.
KEY
: der Name Ihres MetadatenschlüsselsVALUE
: der für diesen Schlüssel gespeicherte WertOptional. Für ein optimistisches Sperrverfahren können Sie optional einen Fingerabdruck angeben.
Ein Fingerabdruck ist eine Reihe zufälliger Zeichen, die von Compute Engine erstellt wird. Dieser Fingerabdruck ändert sich nach jeder Anfrage. Geben Sie einen falschen an, wird Ihre Anfrage abgelehnt.
Wenn Sie keinen Fingerabdruck angeben, wird keine Konsistenzprüfung durchgeführt. Die
projects().setCommonInstanceMetadata
-Anfrage ist dann erfolgreich. Dieses Verhalten unterscheidet sich von den Methodeninstances().setMetadata
undinstanceSettings().patch
, bei denen immer ein Fingerabdruck erforderlich ist.Rufen Sie die Methode
project().get
auf, um den aktuellen Fingerabdruck eines Projekts abzurufen.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Die Ausgabe sieht etwa so aus:
{ "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
Senden Sie eine Anfrage an die Methode
projects().setCommonInstanceMetadata
und legen Sie die benutzerdefinierten Metadaten-Schlüssel/Wert-Paare fest.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
- Sie können neue benutzerdefinierte Metadatenschlüssel für eine bestimmte Zone in einem Projekt erstellen und Metadaten für alle VMs in dieser Zone in diesem Projekt festlegen.
- Aktualisieren Sie die Werte vorhandener benutzerdefinierter zonaler Metadateneinträge für alle VMs in einer bestimmten Zone in einem Projekt.
- Überschreiben Sie bei vorhandenen benutzerdefinierten Metadatenschlüsseln mit Projektmetadatenwerten diese Projektmetadatenwerte in bestimmten Zonen und legen Sie stattdessen zonale Metadaten fest. Nachdem Sie zonale Metadaten für diese Schlüssel in einer bestimmten Zone festgelegt haben, verwenden alle VMs in dieser Zone in diesem Projekt die zonalen Metadatenwerte für diese Schlüssel.
- Wenn Sie einen zonalen Metadatenwert für einen Metadatenschlüssel hinzufügen, der bereits einen Projektmetadatenwert hat, überschreibt Compute Engine den Projektmetadatenwert für die VMs in der angegebenen Zone und aktualisiert das Verzeichnis
/project
mit dem zonalen Wert. - Wenn Sie einen neuen Projektmetadatenwert für einen Metadatenschlüssel hinzufügen, der bereits einen zonalen Metadatenwert hat, ändert sich nichts. Compute Engine behält den zonalen Metadatenwert im Verzeichnis
/project
der jeweiligen Zone bei. - Wenn Sie keinen zonalen Metadatenwert für einen benutzerdefinierten Metadatenschlüssel in einer bestimmten Zone angeben, der Schlüssel jedoch einen Projektmetadatenwert hat, haben Ihre VMs in diesen Zonen weiterhin die Projektmetadatenwerte.
Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Standardmäßig wird die Seite Metadaten auf dem Tab Zonale Metadaten geöffnet.
So fügen Sie auf dem Tab Zonale Metadaten neue benutzerdefinierte zonale Metadateneinträge für bestimmte Zonen in Ihrem Projekt hinzu:
- Wählen Sie auf dem Tab Metadaten die Region mit den Zonen aus, für die Sie die Metadateneinträge hinzufügen möchten. Wenn Sie beispielsweise zonale Metadaten in der Zone us-central2-a hinzufügen möchten, wählen Sie us-central2 (Oklahoma) aus. Die Standardauswahl ist us-central1 (Iowa).
- Klicken Sie oben auf der Seite auf Hinzufügen. In der Google Cloud Console wird der Bereich Metadaten zu us-central2 hinzufügen geöffnet.
Führen Sie auf dem Tab Metadaten des Bereichs Metadaten zu us-central2 hinzufügen die folgenden Schritte aus:
- Klicken Sie auf Element hinzufügen.
- Geben Sie im Feld Schlüssel den Namen Ihres benutzerdefinierten Metadatenschlüssels ein.
- Geben Sie im Feld Wert den benutzerdefinierten zonalen Metadatenwert ein.
Maximieren Sie die Liste Zonen und wählen Sie alle Zonen aus, für die Sie diesen zonalen Metadateneintrag verwenden möchten.
Optional. Klicken Sie auf
Element hinzufügen, um weitere benutzerdefinierte zonale Metadateneinträge hinzuzufügen, und wiederholen Sie die vorherigen Schritte.
Klicken Sie auf Senden, um das Hinzufügen Ihrer benutzerdefinierten zonalen Metadateneinträge abzuschließen.
So bearbeiten Sie vorhandene benutzerdefinierte zonale Metadateneinträge:
- Wählen Sie auf dem Tab Metadaten die Region mit den Zonen aus, für die Sie die Metadateneinträge bearbeiten möchten. Wenn Sie beispielsweise zonale Metadaten in der Zone us-central2-a bearbeiten möchten, wählen Sie us-central2 (Oklahoma) aus. Die Standardauswahl ist us-central1 (Iowa).
- Wählen Sie die benutzerdefinierten zonalen Metadateneinträge aus, die Sie bearbeiten möchten.
Klicken Sie oben auf der Seite auf
Bearbeiten. In der Google Cloud Console wird der Bereich Metadaten in us-central2 bearbeiten geöffnet.Gehen Sie auf dem Tab Metadaten des Bereichs Metadaten in us-central2 bearbeiten so vor, um Ihren Metadateneintrag zu bearbeiten:
- Geben Sie im Feld Schlüssel den neuen Namen für diesen Schlüssel ein, um den Namen eines benutzerdefinierten Metadatenschlüssels zu aktualisieren.
- Geben Sie im Feld Wert den neuen zonalen Metadatenwert für diesen Schlüssel ein, um den Wert eines benutzerdefinierten zonalen Metadateneintrags zu aktualisieren.
- Wenn Sie die Zonen aktualisieren möchten, für die Sie den benutzerdefinierten zonalen Metadateneintrag verwenden möchten, maximieren Sie die Liste Zonen und wählen Sie alle Zonen aus, für die Sie diesen zonalen Metadateneintrag verwenden möchten.
- Optional. Wenn Sie den benutzerdefinierten zonalen Metadateneintrag für bestimmte Zonen entfernen möchten, maximieren Sie die Liste Zonen und heben Sie die Auswahl aller Zonen auf, aus denen Sie diesen zonalen Metadateneintrag entfernen möchten. Alternativ können Sie auf das Löschsymbol für diesen Metadateneintrag klicken, um den jeweiligen benutzerdefinierten zonalen Metadateneintrag aus allen Zonen in diesem Projekt zu entfernen.
Wenn Sie mehrere Metadateneinträge bearbeiten möchten, wiederholen Sie diesen Schritt für jeden Metadateneintrag, den Sie bearbeiten möchten.
Klicken Sie auf Senden, um die Bearbeitung der benutzerdefinierten zonalen Metadateneinträge abzuschließen.
Mit dem Befehl
gcloud compute project-zonal-metadata add
können Sie benutzerdefinierte zonale Metadaten hinzufügen oder aktualisieren.gcloud compute project-zonal-metadata add \ --zone=ZONE \ --project=PROJECT_ID \ --metadata=KEY1=VALUE1,KEY2=VALUE2,...
Ersetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, in der Sie zonale Metadaten hinzufügen oder aktualisieren möchten.KEY1
,KEY2
, ...: die benutzerdefinierten Metadatenschlüssel, für die Sie zonale Metadatenwerte hinzufügen oder aktualisieren möchten.VALUE1
,VALUE2
, ...: die zonalen Metadatenwerte, die Sie für Ihre vorhandenen und neuen benutzerdefinierten Metadatenschlüssel festlegen möchten. Je nach benutzerdefiniertem Metadatenschlüssel und -wert wird eine der folgenden Aktionen ausgeführt:Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein vorhandener Schlüssel mit Projektmetadaten ist, überschreibt Compute Engine in der angegebenen Zone den Projektmetadatenwert des Schlüssels mit dem angegebenen zonalen Metadatenwert. Alle VMs in der angegebenen Zone im Projekt übernehmen diese neu angegebenen zonalen Metadaten für diesen Schlüssel und VMs in anderen Zonen behalten ihre geltenden Projekt- oder zonalen Metadatenwerte bei. Wenn Sie den Projektmetadatenwert für diesen Schlüssel in Zukunft aktualisieren, sind die VMs in dieser Zone im Projekt nicht betroffen und verwenden weiterhin den zonalen Metadatenwert für diesen Schlüssel.
Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein neuer Metadatenschlüssel ist, der nicht für vorhandene Projekt- oder zonale Metadaten verwendet wird, erstellt Compute Engine den benutzerdefinierten Metadatenschlüssel und legt diesen Wert als zonale Metadaten im angegebenen Zone fest.
Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein vorhandener Metadatenschlüssel mit einem zonalen Metadatenwert in der angegebenen Zone ist:
- Wenn sich der angegebene Metadatenwert vom vorhandenen Wert unterscheidet, aktualisiert Compute Engine den zonalen Metadateneintrag mit dem neuen Wert.
- Wenn der angegebene Metadatenwert mit dem vorhandenen Wert übereinstimmt, bleibt der zonale Metadateneintrag unverändert.
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"value-1"
und"key-2":"value-2"
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
und"key-4":"value-4"
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
und"key-4":"new-value-4"
Rufen Sie den aktuellen Fingerabdruck ab und rufen Sie alle vorhandenen Schlüssel/Wert-Paare für das Projekt in dieser Zone auf.
Für ein optimistisches Sperrverfahren müssen Sie einen Fingerabdruck angeben. Ein Fingerabdruck ist eine Reihe zufälliger Zeichen, die von Compute Engine erstellt wird. Dieser Fingerabdruck ändert sich jedes Mal, wenn Sie eine Anfrage zum Hinzufügen, Aktualisieren oder Entfernen von zonalen Metadaten stellen. Wenn Sie einen nicht übereinstimmenden Fingerabdruck angeben, lehnt Compute Engine Ihre Anfrage ab.
Wenn Sie keinen Fingerabdruck angeben, wird eine Konsistenzprüfung durchgeführt. Ihre Aktualisierungsanfrage ist dann nicht erfolgreich. Das führt dazu, dass nur jeweils eine Anfrage auf einmal durchgeführt wird und Konflikte vermieden werden. Dieses Verhalten entspricht
instances().setMetadata
, wobei immer ein Fingerabdruck erforderlich ist.Führen Sie eine
GET
-Anfrage an die MethodeinstanceSettings().get
aus, um den aktuellen Fingerabdruck der zonalen Metadaten abzurufen.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ersetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, in der Sie die zonalen Metadaten festlegen möchten.
Das folgende Beispiel zeigt eine Ausgabe für diese Anfrage:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
Wenn Sie die zonalen Metadaten hinzufügen oder aktualisieren möchten, stellen Sie eine
PATCH
-Anfrage an die MethodeinstanceSettings().patch
. Sie müssen in Ihrer Anfrage Folgendes angeben:Eine Aktualisierungsmaske Verwenden Sie den Abfrageparameter
update_mask
. Die Aktualisierungsmaske muss die Metadatenschlüssel für Folgendes enthalten:- Die neuen benutzerdefinierten zonalen Metadaten, die Sie hinzufügen möchten
- Die vorhandenen benutzerdefinierten zonalen Metadaten, für die Sie Werte aktualisieren möchten
Sie müssen den String
metadata.items.
als Präfix für jeden Schlüssel hinzufügen, z. B.metadata.items.key1,metadata.items.key3
.Geben Sie im Anfragetext Folgendes an:
- Die Metadatenschlüssel und -werte für die neuen benutzerdefinierten zonalen Metadaten, die Sie hinzufügen möchten
- Die Metadatenschlüssel und -werte der vorhandenen benutzerdefinierten zonalen Metadaten, die Sie aktualisieren möchten
- Den aktuellen Fingerabdruckwert
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { "KEY1": "VALUE1", "KEY2": "VALUE2", ... } } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts.ZONE
: die Zone, in der Sie die zonalen Metadaten festlegen möchten.PREFIXED_METADATA_KEYS
: die Liste der Metadatenschlüssel für Folgendes, wobei jedem Schlüssel der Stringmetadata.items.
vorangestellt ist:- Die neuen benutzerdefinierten zonalen Metadaten, die Sie hinzufügen möchten
- Die vorhandenen benutzerdefinierten zonalen Metadaten, für die Sie Werte aktualisieren möchten
Angenommen, Ihre aktuellen zonalen Metadatenschlüssel in einer bestimmten Zone sind
key-1
undkey-2
. Wenn Sie den neuen Schlüsselkey-3
für zonale Metadaten in dieser Zone hinzufügen und auch die zonalen Metadaten für einen der vorhandenen Schlüsselkey-1
aktualisieren möchten, muss Ihre Aktualisierungsmaske den folgenden String haben:metadata.items.key1,metadata.items.key3
FINGER_PRINT
: der aktuelle Fingerabdruckwert.KEY1
,KEY2
, ...: die benutzerdefinierten zonalen Metadatenschlüssel, für die Sie Werte hinzufügen oder aktualisieren möchten. Geben Sie alle benutzerdefinierten zonalen Metadatenschlüssel an, die Sie in der Aktualisierungsmaske angegeben haben.VALUE1
,VALUE2
, ...: die zonalen Metadatenwerte, die Sie für Ihre vorhandenen und neuen benutzerdefinierten Metadatenschlüssel festlegen möchten. Je nach benutzerdefiniertem Metadatenschlüssel und -wert wird eine der folgenden Aktionen ausgeführt:- Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein vorhandener Schlüssel mit Projektmetadaten ist, überschreibt Compute Engine in der angegebenen Zone den Projektmetadatenwert des Schlüssels mit dem angegebenen zonalen Metadatenwert. Alle VMs in der angegebenen Zone im Projekt übernehmen diese neu angegebenen zonalen Metadaten für diesen Schlüssel und VMs in anderen Zonen behalten ihre geltenden Projekt- oder zonalen Metadatenwerte bei. Wenn Sie den Projektmetadatenwert für diesen Schlüssel in Zukunft aktualisieren, sind die VMs in dieser Zone im Projekt nicht betroffen und verwenden weiterhin den zonalen Metadatenwert für diesen Schlüssel.
- Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein neuer Metadatenschlüssel ist, der nicht für vorhandene Projekt- oder zonale Metadaten verwendet wird, erstellt Compute Engine den benutzerdefinierten Metadatenschlüssel und legt diesen Wert als zonale Metadaten im angegebenen Zone fest.
Wenn der entsprechende benutzerdefinierte Metadatenschlüssel ein vorhandener Metadatenschlüssel mit einem zonalen Metadatenwert in der angegebenen Zone ist:
Wenn sich der angegebene Metadatenwert vom vorhandenen Wert unterscheidet, aktualisiert Compute Engine den zonalen Metadateneintrag mit dem neuen Wert.
Wenn der angegebene Metadatenwert mit dem vorhandenen Wert übereinstimmt, bleibt der zonale Metadateneintrag unverändert.
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"value-1"
und"key-2":"value-2"
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
und"key-4":"value-4"
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
und"key-4":"new-value-4"
- Bei neuen VMs können Sie benutzerdefinierte Metadaten beim Erstellen der VM hinzufügen.
- Bei vorhandenen VMs können Sie benutzerdefinierte Metadaten hinzufügen oder aktualisieren, wenn die VM ausgeführt wird.
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie die VM-Details an
Maximieren Sie den Abschnitt Erweiterte Optionen und tun Sie Folgendes:
- Maximieren Sie den Bereich Verwaltung.
- Klicken Sie im Abschnitt Metadaten auf Element hinzufügen, um mehrere Schlüssel/Wert-Paare für Ihre benutzerdefinierten Metadaten hinzuzufügen.
Klicken Sie auf Erstellen, um die VM zu erstellen.
VM_NAME
: der Name Ihrer VMKEY
: der Name Ihres MetadatenschlüsselsVALUE
: der für diesen Schlüssel gespeicherte WertPROJECT_ID
: Ihre Projekt-IDZONE
ist die Zone, in der die VM erstellt werden soll.MACHINE_TYPE
legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.VM_NAME
ist der Name der neuen VM.KEY
: der Name Ihres MetadatenschlüsselsVALUE
: der für diesen Schlüssel gespeicherte Wert- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- Klicken Sie auf die Instanz, deren Metadaten Sie aktualisieren möchten.
- Klicken Sie oben auf der Seite auf Bearbeiten.
- Klicken Sie unter Benutzerdefinierte Metadaten auf Element hinzufügen oder bearbeiten Sie vorhandene Metadaten.
- Speichern Sie die Änderungen.
VM_NAME
: der Name Ihrer VMKEY
: der Name Ihres MetadatenschlüsselsVALUE
: der für diesen Schlüssel gespeicherte WertRufen Sie den aktuellen Fingerabdruck ab und rufen Sie alle vorhandenen Schlüssel/Wert-Paare für die VM auf. Rufen Sie dazu die Methode
instances().get
auf.Ein Fingerabdruck ist eine Reihe zufälliger Zeichen, die von Compute Engine erstellt und für ein optimistisches Sperrverfahren genutzt werden. Zum Aktualisieren der VM müssen Sie den entsprechenden Fingerabdruckwert angeben. Dieser Fingerabdruck ändert sich nach jeder Anfrage. Geben Sie einen falschen an, wird Ihre Anfrage abgelehnt. Das führt dazu, dass nur jeweils eine Aktualisierung auf einmal durchgeführt wird und Konflikte vermieden werden.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMEErsetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-IDZONE
: Zone, in der sich Ihre VM befindetVM_NAME
: Name Ihrer VM
Die Ausgabe sieht in etwa so aus:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
Stellen Sie eine Anfrage an die Methode
instances().setMetadata
. Geben Sie eine Liste der neuen Metadatenwerte und des aktuellen Wertsfingerprint
an.Wenn die VM bereits Schlüssel/Wert-Paare hat, die Sie behalten möchten, müssen Sie sie der Anfrage mit den neuen Schlüssel/Wert-Paaren hinzufügen:
Beispiel
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "zhma6O1w2l8=", "items": [ { "key": "foo", "value": "bar" }, { "key": "baz", "value": "bat" } ] }Dabei gilt:
PROJECT_ID
: Ihre Projekt-IDZONE
: Zone, in der sich Ihre VM befindetVM_NAME
: Name Ihrer VM
- Benutzerdefinierte Projektmetadaten entfernen, um benutzerdefinierte Metadaten zu entfernen, die für alle VMs in einem Projekt festgelegt wurden.
- Benutzerdefinierte zonale Metadaten entfernen, um benutzerdefinierte Metadaten zu entfernen, die für alle VMs in einer bestimmten Zone in einem Projekt festgelegt wurden.
- Benutzerdefinierte Instanzmetadaten entfernen, um VM-Metadaten zu entfernen, die für eine bestimmte VM festgelegt wurden.
Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Standardmäßig wird die Seite Metadaten auf dem Tab Zonale Metadaten geöffnet.
Klicken Sie auf den Tab Projektmetadaten.
Der Tab Metadaten wird für Projektmetadaten geöffnet.
Klicken Sie oben auf der Seite auf
Bearbeiten.Gehen Sie auf dem Tab Metadaten für Projektmetadaten zu dem Metadateneintrag, den Sie entfernen möchten, und klicken Sie daneben auf die Schaltfläche
Löschen.Wiederholen Sie diesen Schritt für jeden SSH-Schlüssel, den Sie entfernen möchten.
Klicken Sie auf Speichern, um das Entfernen der benutzerdefinierten Projektmetadateneinträge abzuschließen.
- Wenn Sie die benutzerdefinierten Metadateneinträge für bestimmte Schlüssel entfernen möchten, geben Sie diese Schlüssel mit dem Flag
--keys
an und schließen die Werte dieser Schlüssel aus. - Wenn Sie alle benutzerdefinierten Metadaten für die VM entfernen möchten, geben Sie das Flag
--all
an. KEY1
,KEY2
, ...: die benutzerdefinierten Instanzmetadatenschlüssel, die Sie entfernen möchten.Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Standardmäßig wird die Seite Metadaten auf dem Tab Zonale Metadaten geöffnet.
Wählen Sie auf dem Tab SSH-Schlüssel die Region mit den Zonen aus, für die Sie die SSH-Schlüssel hinzufügen möchten. Wenn Sie beispielsweise zonale SSH-Schlüssel in der Zone us-central2-a hinzufügen möchten, wählen Sie us-central2 (Oklahoma) aus. Die Standardauswahl ist us-central1 (Iowa).
Zum Entfernen benutzerdefinierter zonaler Metadaten aus allen Zonen in Ihrem Projekt gehen Sie auf dem Tab Metadaten für Zonale Metadaten so vor:
- Klicken Sie die Kästchen für alle benutzerdefinierten zonalen Metadateneinträge an, die Sie entfernen möchten.
- Klicken Sie oben auf der Seite auf Löschen. In der Google Cloud Console wird ein Dialogfeld angezeigt, in dem Sie Ihre Änderungen prüfen können.
- Klicken Sie auf Bestätigen, um die Änderungen zu bestätigen und die benutzerdefinierten zonalen Metadateneinträge zu entfernen.
Alternativ können Sie benutzerdefinierte zonale Metadaten nur aus bestimmten Zonen in Ihrem Projekt auf dem Tab Metadaten für Zonale Metadaten entfernen:
- Klicken Sie die Kästchen für alle benutzerdefinierten zonalen Metadateneinträge an, die Sie aus bestimmten Zonen entfernen möchten.
- Klicken Sie oben auf der Seite auf Bearbeiten. In der Google Cloud Console wird der Bereich Metadaten in us-central2 bearbeiten geöffnet.
Führen Sie auf dem Tab Metadaten des Bereichs Metadaten in us-central2 bearbeiten für jeden Metadateneintrag, den Sie aus bestimmten Zonen entfernen möchten, die folgenden Schritte aus. :
- Maximieren Sie das Menü Zonen.
- Entfernen Sie die Häkchen für alle Zonen, aus denen Sie den jeweiligen benutzerdefinierten zonalen Metadateneintrag entfernen möchten.
- Alternativ können Sie auf das Löschsymbol für diesen Metadateneintrag klicken, um den jeweiligen benutzerdefinierten zonalen Metadateneintrag aus allen Zonen im Projekt zu entfernen.
- Klicken Sie auf Senden, um das Entfernen des Metadateneintrags aus den angegebenen Zonen abzuschließen.
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, in der Sie die zonalen Metadaten entfernen möchten.KEY1
,KEY2
...: die benutzerdefinierten zonalen Metadatenschlüssel, die Sie entfernen möchten.- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
und"key-4":"new-value-4"
"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-c"
Rufen Sie den aktuellen Fingerabdruck ab und rufen Sie alle vorhandenen Schlüssel/Wert-Paare für das Projekt in dieser Zone auf.
Für ein optimistisches Sperrverfahren müssen Sie einen Fingerabdruck angeben. Ein Fingerabdruck ist eine Reihe zufälliger Zeichen, die von Compute Engine erstellt wird. Dieser Fingerabdruck ändert sich jedes Mal, wenn Sie eine Anfrage zum Hinzufügen, Aktualisieren oder Entfernen von zonalen Metadaten stellen. Wenn Sie einen nicht übereinstimmenden Fingerabdruck angeben, lehnt Compute Engine Ihre Anfrage ab.
Wenn Sie keinen Fingerabdruck angeben, wird eine Konsistenzprüfung durchgeführt. Ihre Löschanfrage ist dann nicht erfolgreich. Das führt dazu, dass nur jeweils eine Anfrage auf einmal durchgeführt wird und Konflikte vermieden werden. Dieses Verhalten entspricht
instances().setMetadata
, wobei immer ein Fingerabdruck erforderlich ist.Rufen Sie die Methode
instanceSettings().get
auf, um den aktuellen Fingerabdruck eines Projekts abzurufen.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ersetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, in der Sie die zonalen Metadaten entfernen möchten.
Das folgende Beispiel zeigt eine Ausgabe für diese Anfrage:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
Wenn Sie benutzerdefinierte zonale Metadaten entfernen möchten, stellen Sie eine
PATCH
-Anfrage an dieinstanceSettings().patch
Methode, wobei Sie die Metadatenschlüssel, für die Sie die zonalen Metadaten entfernen möchten, aus dem Anfragetext ausschließen. Sie müssen in Ihrer Anfrage Folgendes angeben:Eine Aktualisierungsmaske Verwenden Sie den Abfrageparameter
update_mask
. Die Aktualisierungsmaske muss alle vorhandenen benutzerdefinierten Metadatenschlüssel enthalten, für die Sie die zonalen Metadaten entfernen möchten. Sie müssen den Stringmetadata.items.
als Präfix für jeden Schlüssel hinzufügen, z. B.metadata.items.key1,metadata.items.key3
.Geben Sie im Anfragetext nur den aktuellen Fingerabdruckwert an. Schließen Sie alle benutzerdefinierten Metadatenschlüssel aus, die Sie in der Aktualisierungsmaske angegeben haben. Wenn Sie einen der Metadatenschlüssel sowohl in die Aktualisierungsmaske als auch in den Anfragetext einfügen, entfernt Compute Engine die zonalen Metadaten für diese Schlüssel nicht.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { } } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts.ZONE
: die Zone, in der Sie die zonalen Metadaten entfernen möchten.PREFIXED_METADATA_KEYS
: die Liste aller vorhandenen benutzerdefinierten Metadatenschlüssel, für die Sie zonale Metadaten entfernen möchten, wobei jedem Schlüssel der Stringmetadata.items.
vorangestellt ist “ Schließen Sie diese Metadatenschlüssel aus dem Anfragetext aus, damit Ihre Löschanfrage erfolgreich ist. Wenn Sie einen der Metadatenschlüssel sowohl in die Aktualisierungsmaske als auch in den Anfragetext einfügen, entfernt Compute Engine die zonalen Metadaten für diese Schlüssel nicht.Angenommen, Ihre aktuellen Metadatenschlüssel mit zonalen Metadaten sind
key-1
,key-2
,key-3
undkey-4
und Sie möchten die zonalen Metadateneinträge fürkey-1
undkey-2
entfernen. Dann muss die Aktualisierungsmaske den folgenden String haben:metadata.items.key1,metadata.items.key2
FINGER_PRINT
: der aktuelle Fingerabdruckwert.
- Projektmetadaten:
"key-1":"value-a"
,"key-2":"value-b"
und"key-3":"value-c"
- Zonale Metadaten in der Zone
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
und"key-4":"new-value-4"
- Projektmetadaten:
"key-1":"value-a"
und"key-2":"value-b"
- Zonale Metadaten in der Zone
us-central1-a
:"key-3":"value-3"
und"key-4":"new-value-4"
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- Klicken Sie in der Spalte Name auf den Namen der VM, für die Sie Metadaten entfernen möchten.
- Klicken Sie oben auf der Seite auf Bearbeiten.
- Klicken Sie im Abschnitt Metadaten für jeden Metadateneintrag, den Sie entfernen möchten, auf Element löschen.
- Klicken Sie auf Speichern, um die Änderungen zu bestätigen und die benutzerdefinierten Instanzmetadaten zu entfernen.
- Wenn Sie die benutzerdefinierten Metadateneinträge für bestimmte Schlüssel entfernen möchten, geben Sie diese Schlüssel mit dem Flag
--keys
an und schließen die Werte dieser Schlüssel aus. - Wenn Sie alle benutzerdefinierten Metadaten für die VM entfernen möchten, geben Sie das Flag
--all
an. PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone Ihrer VM.VM_NAME
: Name Ihrer VMKEY1
,KEY2
, ...: die benutzerdefinierten Instanzmetadatenschlüssel, die Sie entfernen möchten.Rufen Sie den aktuellen Fingerabdruck ab und rufen Sie alle vorhandenen Schlüssel/Wert-Paare für die VM auf. Rufen Sie dazu die Methode
instances().get
auf.Ein Fingerabdruck ist eine Reihe zufälliger Zeichen, die von Compute Engine erstellt und für ein optimistisches Sperrverfahren genutzt werden. Zum Aktualisieren der VM müssen Sie den entsprechenden Fingerabdruckwert angeben. Dieser Fingerabdruck ändert sich nach jeder Anfrage. Geben Sie einen falschen an, wird Ihre Anfrage abgelehnt. Das führt dazu, dass nur jeweils eine Aktualisierung auf einmal durchgeführt wird und Konflikte vermieden werden.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMEErsetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone Ihrer VM.VM_NAME
: Name Ihrer VM
Die Ausgabe sieht in etwa so aus:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "key-1", "value": "value-1" } { "key": "key-2", "value": "value-2" } ] }, ... }
Stellen Sie eine Anfrage an die Methode
instances().setMetadata
. Sie müssen den aktuellen Metadaten-Fingerabdruckwert angeben, damit Ihre Anfrage erfolgreich ist.Wenn Sie alle benutzerdefinierten Metadaten-Schlüssel/Wert-Paare von einer VM entfernen möchten, schließen Sie im Attribut
items
die Metadatenschlüssel aus, für die Sie Metadatenwerte entfernen möchten.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "FINGER_PRINT" "items": [ { "key": "KEY1" "value": "VALUE1" } { "key": "KEY2" "value": "VALUE2" } ... ] }Wenn Sie alle benutzerdefinierten Instanzmetadaten auf der VM entfernen möchten, schließen Sie das Attribut
items
vollständig aus.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": FINGER_PRINT }
Ersetzen Sie Folgendes:
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone Ihrer VM.VM_NAME
: Name Ihrer VMFINGER_PRINT
: der aktuelle Fingerabdruckwert.KEY1
,KEY2
, ...: die benutzerdefinierten Instanzmetadatenschlüssel, die Sie entfernen möchten.VALUE1
,VALUE2
, ...: die Werte der benutzerdefinierten Instanzmetadatenschlüssel, die Sie entfernen möchten.
- Mehr über VM-Metadaten erfahren
- VM-Metadaten aufrufen und abfragen
- Auf dem Metadatenserver Startskripts oder Shutdown-Skripts ausführen
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 folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Festlegen oder Entfernen benutzerdefinierter Metadaten auf VMs benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Festlegen oder Entfernen benutzerdefinierter Metadaten auf VMs erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um benutzerdefinierte Metadaten auf VMs festzulegen oder zu entfernen:
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Beschränkungen
Compute Engine erzwingt insgesamt ein Limit von 512 KB für alle Metadateneinträge. Auch die Größe jedes einzelnen
key
undvalue
ist nach oben hin begrenzt:SSH-Schlüssel werden beispielsweise als benutzerdefinierte Metadaten unter dem Schlüssel
ssh-keys
gespeichert. Wenn Ihr Metadateninhalt odervalue
für diesen Schlüssel die Grenze von 256 KB überschreitet, können Sie keine weiteren SSH-Schlüssel hinzufügen. Sollten Sie Probleme mit dieser Einschränkung haben, können Sie ungenutzte Schlüssel entfernen, um Platz für neue zu schaffen.Wenn Sie den Inhalt des Start- oder Shutdown-Skripts direkt angeben, wird dieser Inhalt möglicherweise auch als benutzerdefinierte Metadaten gespeichert und auf diese Größenbeschränkung angerechnet. Dies können Sie vermeiden, indem Sie Ihre Startskripts oder Shutdown-Skripts als Datei speichern, die an einem externen Speicherort wie Cloud Storage gehostet wird. Geben Sie beim Erstellen einer VM dann die Startskript-URL an. Auf diese Weise werden diese Dateien auf die VM heruntergeladen und nicht auf dem Metadatenserver gespeichert.
Boolesche Werte
Für Felder, die die booleschen Werte
TRUE
oderFALSE
annehmen, können die folgenden Werte verwendet werden:Status Alternative Werte TRUE
Y
,Yes
,1
FALSE
N
,No
,0
Bei booleschen Werten wird nicht zwischen Groß- und Kleinschreibung unterschieden. Sie können z. B.
False
,false
oderFALSE
verwenden, um ein Feature zu deaktivieren.Benutzerdefinierte Metadaten auf VMs festlegen
In diesem Abschnitt finden Sie Informationen zum Hinzufügen neuer benutzerdefinierter Metadaten und zum Aktualisieren vorhandener benutzerdefinierter Metadatenwerte für Ihre Compute Engine-VMs auf eine der folgenden Arten:
Benutzerdefinierte Projektmetadaten festlegen
Sie können die benutzerdefinierten Metadaten für alle Instanzen in einem Projekt hinzufügen oder aktualisieren. Verwenden Sie dazu die Google Cloud Console, die Google Cloud CLI oder REST.
Folgen Sie dieser Anleitung, um Metadateneinstellungen auf alle VMs im Projekt anzuwenden. Wenn Sie beispielsweise ein Projektmetadatenpaar für
baz=bat
definieren, wird es automatisch auf alle VMs im Projekt angewendet.Console
gcloud
Führen Sie den Befehl
project-info add-metadata
aus.gcloud compute project-info add-metadata \ --metadata=KEY=VALUE
Dabei gilt:
Beispiel
Wenn Sie beispielsweise zwei neue Einträge
foo=bar
undbaz=bat
für ein Projekt festlegen möchten, führen Sie den folgenden Befehl aus:gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=bat
Sie können mit dem Flag
--metadata-from-file
optional eine oder mehrere Dateien angeben, aus denen Metadaten gelesen werden sollen.REST
Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID.Benutzerdefinierte zonale Metadaten festlegen
Wenn Sie benutzerdefinierte zonale Metadaten festlegen, werden die zonalen Metadateneinträge für Ihre VMs in einer bestimmten Zone in einem Projekt hinzugefügt oder aktualisiert. Um Folgendes zu tun können Sie benutzerdefinierte zonale Metadaten festlegen:
Wichtige Hinweise vor dem Festlegen von benutzerdefinierten zonalen Metadaten
Projekt- und zonale Metadateneinträge werden im selben Verzeichnis
project/
gespeichert. Wenn Sie verschiedene Werte für dieselben benutzerdefinierten Metadatenschlüssel für VMs auf Projektebene und auf zonaler Ebene festlegen, haben die zonalen Metadatenwerte für diese Schlüssel Vorrang vor den Projektmetadatenwerten in den entsprechenden Zonen.Prozedur
Sie können die benutzerdefinierten zonalen Metadaten in einer bestimmten Zone in einem Projekt mithilfe der Google Cloud Console, der Google Cloud CLI oder REST hinzufügen oder aktualisieren.
Console
gcloud
Beispiel: Neuen benutzerdefinierten zonalen Metadateneintrag hinzufügen
Angenommen, Sie haben ein Projekt namens
my-project
mit den folgenden benutzerdefinierten Metadaten:Führen Sie den folgenden Befehl aus, um
"key-4":"value-4"
als neues benutzerdefiniertes zonales Metadatenpaar in der Zoneus-central1-a
hinzuzufügen:gcloud compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-a
Beispiel: Werte eines vorhandenen benutzerdefinierten zonalen Metadateneintrags aktualisieren
Betrachten Sie dasselbe Beispielprojekt
my-project
, das jetzt die folgenden benutzerdefinierten Metadaten enthält:Führen Sie den folgenden Befehl aus, um die zonalen Metadatenwerte von
key-1
undkey-4
in der Zoneus-cerntral1-a
mit neuen Werten zu aktualisieren.gcloud compute project-zonal-metadata add \ --metadata=key-1=new-value-1,key-4=new-value-4 \ --project=my-project \ --zone=us-central1-a
Beispiel: Projektmetadatenwert für einen Schlüssel überschreiben und zonalen Metadatenwert verwenden
Betrachten Sie dasselbe Beispielprojekt
my-project
, das jetzt die folgenden benutzerdefinierten Metadaten enthält:In diesem Beispielprojekt wird
key-3
verwendet, das den Projektmetadatenwertvalue-c
hat. Angenommen, Sie möchten einen zonalen Metadatenwertvalue-3
für diesen Schlüssel für alle VMs in der Zoneus-central1-a
festlegen. Wenn Sie den Vorgang ausführen, überschreibt Compute Engine für alle VMs in der Zoneus-central1-a
die Projektmetadatenwerte und verwendet die zonalen Metadatenwerte. VMs in allen anderen Zonen des Projekts behalten ihre geltenden Projekt- oder zonalen Metadatenwerte fürkey-3
bei.Führen Sie den folgenden Befehl aus, um den Projektmetadatenwert für
key-3
zu überschreiben und einen zonalen Metadatenwert festzulegen:gcloud compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-a
REST
Beispiel: Neuen benutzerdefinierten zonalen Metadateneintrag hinzufügen
Angenommen, Sie haben ein Projekt namens
my-project
mit den folgenden benutzerdefinierten Metadaten:Wenn Sie
"key-4":"value-4"
als neues benutzerdefiniertes zonales Metadatenpaar in der Zoneus-central1-a
hinzufügen möchten, stellen Sie folgendePATCH
-Anfrage:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-4": "value-4" } } }
Beispiel: Werte eines vorhandenen benutzerdefinierten zonalen Metadateneintrags aktualisieren
Betrachten Sie dasselbe Beispielprojekt
my-project
, das jetzt die folgenden benutzerdefinierten Metadaten enthält:Wenn Sie die zonalen Metadatenwerte von
key-1
undkey-4
in der Zoneus-cerntral1-a
mit neuen Werten aktualisieren möchten, stellen Sie folgendePATCH
-Anfrage:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-1": "new-value-1", "key-4": "new-value-4" } } }
Beispiel: Projektmetadatenwert für einen Schlüssel überschreiben und zonalen Metadatenwert festlegen
Betrachten Sie dasselbe Beispielprojekt
my-project
, das jetzt die folgenden benutzerdefinierten Metadaten enthält:In diesem Beispielprojekt wird
key-3
verwendet, das den Projektmetadatenwertvalue-c
hat. Angenommen, Sie möchten einen zonalen Metadatenwertvalue-3
für diesen Schlüssel für alle VMs in der Zoneus-central1-a
festlegen. Wenn Sie den Vorgang ausführen, überschreibt Compute Engine für alle VMs in der Zoneus-central1-a
die Projektmetadatenwerte und verwendet die zonalen Metadatenwerte. VMs in allen anderen Zonen des Projekts behalten ihre geltenden Projekt- oder zonalen Metadatenwerte fürkey-3
bei.Wenn Sie den Projektmetadatenwert für
key-3
überschreiben und stattdessen den zonalen Metadatenwertvalue-3
verwenden möchten, stellen Sie folgendePATCH
-Anfrage:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-3 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-3": "value-3" } } }
Benutzerdefinierte Instanzmetadaten festlegen
Sie können die benutzerdefinierten Metadaten für eine einzelne VM-Instanz mithilfe der Google Cloud Console, der Google Cloud CLI oder REST hinzufügen oder aktualisieren.
Sie können benutzerdefinierte Instanzmetadaten auf eine der folgenden Arten festlegen:
Benutzerdefinierte Instanzmetadaten bei der VM-Erstellung hinzufügen
Folgen Sie dieser Anleitung, um Metadaten auf einer bestimmten VM-Instanz zum Zeitpunkt der Erstellung hinzuzufügen.
Console
gcloud
Verwenden Sie zum Festlegen benutzerdefinierter Metadaten den Befehl
gcloud compute instances create
mit dem Flag--metadata
.gcloud compute instances create VM_NAME \ --metadata=KEY=VALUE
Dabei gilt:
Beispiel
Mit dem folgenden Befehl legen Sie beispielsweise auf einer VM mit dem Namen
example-instance
einen neuen Schlüsselfoo
mit dem Wertbar
fest:gcloud compute instances create example-instance \ --metadata=foo=bar
REST
Verwenden Sie die Methode
instances.insert
und geben Sie die benutzerdefinierten Metadaten als Teil des Attributsmetadata
in Ihrer Anfrage an:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME
", "...": [ { } ], "metadata": { "items": [ { "key": "KEY", "value": "VALUE" } ] }, .. }Dabei gilt:
Benutzerdefinierte Instanzmetadaten auf einer vorhandenen VM hinzufügen oder aktualisieren
Folgen Sie dieser Anleitung, um Metadaten auf einer bestimmten VM-Instanz zu aktualisieren, die bereits vorhanden ist.
Console
gcloud
Wenn Sie VM-Metadaten mit der gcloud CLI aktualisieren, fügen Sie neue Daten hinzu. Geben Sie nur die Metadatenschlüssel an, die Sie hinzufügen oder ändern möchten. Wenn ein Schlüssel bereits existiert, wird der Wert des Schlüssels mit dem neuen Wert aktualisiert.
Führen Sie den Befehl
instances add-metadata
aus:gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUE
Dabei gilt:
Beispiele
Wenn Sie den Eintrag
foo=bar
hinzufügen möchten, verwenden Sie Folgendes:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Wenn Sie den Eintrag
foo=bar
infoo=bat
ändern möchten, verwenden Sie Folgendes:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
REST
Benutzerdefinierte Metadaten aus VMs entfernen
In diesem Abschnitt erfahren Sie, wie Sie benutzerdefinierte Metadateneinträge für Ihre Compute Engine-VMs auf eine der folgenden Arten entfernen:
Benutzerdefinierte Projektmetadaten entfernen
Sie können benutzerdefinierte Projektmetadaten mithilfe der Google Cloud Console oder der Google Cloud CLI entfernen.
Console
gcloud
Verwenden Sie zum Entfernen benutzerdefinierter Projektmetadaten den Befehl
gcloud compute project-info remove-metadata
.gcloud compute project-info remove-metadata \ --keys=KEY1,KEY2,...
gcloud compute project-info remove-metadata \ --all
Ersetzen Sie Folgendes:
Benutzerdefinierte zonale Metadaten entfernen
Sie können benutzerdefinierte zonale Metadaten mithilfe der Google Cloud Console, der Google Cloud CLI oder der Compute Engine API entfernen.
Console
gcloud
Verwenden Sie zum Entfernen von benutzerdefinierten zonalen Metadaten den Befehl
gcloud compute project-zonal-metadata remove
und geben Sie alle Metadatenschlüssel, die Sie entfernen möchten, mit dem Flag--keys
an.gcloud compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...
Ersetzen Sie Folgendes:
Wenn nach der Ausführung des Befehls einer der angegebenen Schlüssel Projektmetadatenwerte hat, übernehmen die VMs in der angegebenen Zone diese Projektmetadatenwerte. Wenn der Metadateneintrag nur auf zonaler Ebene festgelegt wurde und kein entsprechender Projektmetadatenwert für diesen Schlüssel vorhanden ist, verlieren die VMs in dieser Zone diese Metadateninformationen.
Beispiel:
Nehmen wir als Beispiel das Projekt
my-project
mit den folgenden benutzerdefinierten Projektmetadaten:Führen Sie den folgenden Befehl aus, um alle zonalen Metadaten in der Zone
us-central1-a
zu entfernen.gcloud compute project-zonal-metadata remove \ --metadata=key-1,key-2,key-3,key-4 \ --project=my-project \ --zone=us-central1-a
Nachdem Sie den Befehl ausgeführt haben, haben VMs in der Zone
us-central1-a
die folgenden benutzerdefinierten Projektmetadateneinträge:REST
Wenn nach dem Stellen der Anfrage einer der angegebenen Schlüssel Projektmetadatenwerte hat, übernehmen die VMs in der angegebenen Zone diese Projektmetadatenwerte. Wenn der Metadatenschlüssel nur auf zonaler Ebene festgelegt wurde und kein entsprechender Projektmetadatenwert für diesen Schlüssel vorhanden ist, verlieren diese VMs in dieser Zone diese Metadateninformationen.
Beispiel:
Nehmen wir als Beispiel das Projekt
my-project
mit den folgenden benutzerdefinierten Projektmetadaten:Stellen Sie die folgende
PATCH
-Anfrage, um die zonalen Metadaten fürkey-1
undkey-2
in der Zoneus-central1-a
zu entfernen.PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-2 { "fingerprint": "FikclA7UBC0=", "metadata": { "items": { } } }
Nachdem diese Anfrage verarbeitet wurde, haben VMs in der Zone
us-central1-a
die folgenden benutzerdefinierten Metadaten. VMs übernehmen die Projektmetadatenwerte fürkey-1
undkey-2
, behalten aber die zonalen Metadaten fürkey-3
undkey-4
bei.Benutzerdefinierte Instanzmetadaten entfernen
Sie können benutzerdefinierte Instanzmetadaten mithilfe der Google Cloud Console, der Google Cloud CLI oder REST entfernen.
Console
gcloud
Verwenden Sie zum Entfernen benutzerdefinierter Instanzmetadaten den Befehl
gcloud compute instances remove-metadata
.gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --keys=KEY1,KEY2,...
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --all
Ersetzen Sie Folgendes:
REST
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: 2024-10-14 (UTC).
-