Jede virtuelle Maschine (VM) speichert ihre Metadaten in Verzeichnissen auf einem Metadatenserver. Ihre VM hat automatisch ohne zusätzliche Autorisierung Zugriff auf diese Metadatenserver-API. Sie können die in den folgenden Abschnitten dieses Dokuments erläuterten Methoden verwenden, um VM-Metadatenwerte aufzurufen und abzufragen:
- Metadaten programmatisch von innerhalb einer VM abfragen
- Benutzerdefinierte Metadaten für Ihre VMs aufrufen
Hinweise
- Verwenden Sie für Windows Server-VMs PowerShell 3.0 oder höher.
Wir empfehlen, die kopierten Codeblöcke mit
ctrl+v
einzufügen. - 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
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 -
Um benutzerdefinierte Projektmetadaten aufzurufen:
compute.projects.get
-
Um benutzerdefinierte zonale Metadaten aufzurufen:
compute.instanceSettings.get
-
Um benutzerdefinierte Metadaten für eine VM-Instanz aufzurufen:
compute.instances.get
-
Wenn Ihre VMs Dienstkonten verwenden:
iam.serviceAccounts.actAs
http://metadata.google.internal/computeMetadata/v1
http://169.254.169.254/computeMetadata/v1
http://metadata.goog/computeMetadata/v1
- Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Verwenden Sie in Ihrer Linux-VM das
curl
-Tool, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um einen Metadateneintrag einer VM-Instanz abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um einen Projektmetadateneintrag abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY" -H "Metadata-Flavor: Google"
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, den Sie abfragen möchten.Führen Sie beispielsweise die folgende Abfrage aus, um das Boot-Image für die VM abzufragen:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/image" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
projects/rhel-cloud/global/images/rhel-8-v20210122
- Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Verwenden Sie in Ihrer Windows-VM den Befehl
Invoke-RestMethod
, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um einen Metadateneintrag einer VM-Instanz abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY") $value
Führen Sie den folgenden Befehl aus, um einen Projektmetadateneintrag abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY") $value
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, den Sie abfragen möchten.Führen Sie beispielsweise die folgende Abfrage aus, um das Boot-Image für die VM abzufragen:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/image") $value
Die Ausgabe sieht etwa so aus:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Führen Sie in Ihrer Linux-VM die folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um das Metadatenverzeichnis einer VM-Instanz abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_DIRECTORY_NAME/" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um ein Projektmetadatenverzeichnis abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_DIRECTORY_NAME/" -H "Metadata-Flavor: Google"
Ersetzen Sie
METADATA_DIRECTORY_NAME
durch den Namen des Instanz- oder des Projektmetadatenverzeichnisses, für das Sie die Einträge abfragen möchten.Betrachten Sie beispielsweise den Eintrag
disks/
, bei dem es sich um ein Verzeichnis von Laufwerken handelt, die mit der VM verbunden sind. Führen Sie die folgenden Schritte aus, um den Eintragdisks/
abzufragen:Führen Sie den
curl
-Toolbefehl im Laufwerksverzeichnis aus.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
Die Ausgabe sieht in etwa so aus:
0/ 1/ 2/
Wenn Sie weitere Informationen zum Verzeichnis
0/
des Laufwerks benötigen, können Sie die spezifische URL für dieses Verzeichnis abfragen:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
device-name index mode type
Führen Sie Folgendes aus, um dann den Laufwerktyp (
type
) für die Laufwerke0/
abzufragen:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
PERSISTENT
Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Führen Sie in Ihrer Windows-VM die folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um das Metadatenverzeichnis einer VM-Instanz abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_DIRECTORY_NAME/") $value
Führen Sie den folgenden Befehl aus, um ein Projektmetadatenverzeichnis abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_DIRECTORY_NAME/") $value
Ersetzen Sie
METADATA_DIRECTORY_NAME
durch den Namen des Instanz- oder des Projektmetadatenverzeichnisses, für das Sie die Einträge abfragen möchten.Betrachten Sie beispielsweise den Eintrag
disks/
, bei dem es sich um ein Verzeichnis von Laufwerken handelt, die mit der VM verbunden sind. Führen Sie die folgenden Schritte aus, um den Eintragdisks/
abzufragen:Führen Sie den
Invoke-RestMethod
-Befehl im Laufwerksverzeichnis aus.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/") $value
Die Ausgabe sieht etwa so aus:
0/ 1/ 2/
Wenn Sie weitere Informationen zum Verzeichnis
0/
des Laufwerks benötigen, können Sie die spezifische URL für dieses Verzeichnis abfragen:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/") $value
Die Ausgabe sieht etwa so aus:
device-name index mode type
Führen Sie Folgendes aus, um dann den Laufwerktyp (
type
) für die Laufwerke0/
abzufragen:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type") $value
Die Ausgabe sieht etwa so aus:
PERSISTENT
Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Verwenden Sie in Ihrer Linux-VM das
curl
-Tool, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um die Einträge für das Metadatenverzeichnis einer VM-Instanz rekursiv abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_DIRECTORY_NAME/?recursive=true" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um die Einträge für das Metadatenverzeichnis eines Projekts rekursiv abzufragen:
curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_DIRECTORY_NAME/?recursive=true" -H "Metadata-Flavor: Google"
Ersetzen Sie
METADATA_DIRECTORY_NAME
durch den Namen des Instanz- oder des Projektmetadatenverzeichnisses, für das Sie die Einträge rekursiv abfragen möchten.Mit dem folgenden Befehl werden beispielsweise die Instanzmetadateneinträge für das Verzeichnis
disks/
rekursiv abgefragt.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true" -H "Metadata-Flavor: Google"
Die Ausgabe sieht in etwa so aus:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Standardmäßig werden rekursive Inhalte im JSON-Format angezeigt. Wenn Sie diese Inhalte im Textformat zurückgeben möchten, hängen Sie den Abfrageparameter
alt=text
an:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Verwenden Sie in Ihrer Windows-VM den Befehl
Invoke-RestMethod
, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um die Einträge für das Metadatenverzeichnis einer VM-Instanz rekursiv abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_DIRECTORY_NAME/?recursive=true") $value
Führen Sie den folgenden Befehl aus, um die Einträge für das Metadatenverzeichnis eines Projekts rekursiv abzufragen:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_DIRECTORY_NAME/?recursive=true") $value
Ersetzen Sie
METADATA_DIRECTORY_NAME
durch den Namen des Instanz- oder des Projektmetadatenverzeichnisses, für das Sie die Einträge rekursiv abfragen möchten.Mit dem folgenden Befehl werden beispielsweise die Instanzmetadateneinträge für das Verzeichnis
disks/
rekursiv abgefragt.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true") $value
Die Ausgabe sieht in etwa so aus:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Standardmäßig werden rekursive Inhalte im JSON-Format angezeigt. Wenn Sie diese Inhalte im Textformat zurückgeben möchten, hängen Sie den Abfrageparameter
alt=text
an:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text") $value
Die Ausgabe sieht etwa so aus:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
- Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Verwenden Sie in Ihrer Linux-VM das
curl
-Tool, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um das Datenformat der Abfrageantwort für den Metadateneintrag einer VM-Instanz zu ändern:
curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um das Datenformat der Abfrageantwort für einen Projektmetadateneintrag zu ändern:
curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.DATA_FORMAT
: das Format, in dem die Abfrageantwortdaten abgerufen werden sollen, z. B.text
oderjson
.
- Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Verwenden Sie in Ihrer Windows-VM den Befehl
Invoke-RestMethod
, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um das Datenformat der Abfrageantwort für den Metadateneintrag einer VM-Instanz zu ändern:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?alt=DATA_FORMAT") $value
Führen Sie den folgenden Befehl aus, um das Datenformat der Abfrageantwort für einen Projektmetadateneintrag zu ändern:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?alt=DATA_FORMAT") $value
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.DATA_FORMAT
: das Format, in dem die Abfrageantwortdaten abgerufen werden sollen, z. B.text
oderjson
.
Sie können eine
wait-for-change
-Anfrage nur für einen Metadatenendpunkt oder rekursiv für den Inhalt eines Verzeichnisses ausführen. Sie können keinewait-for-change
-Anfrage für einen Verzeichniseintrag ausführen. Wenn Sie dies versuchen, kann der Metadatenserver Ihre Anfrage nicht ausführen und gibt den Fehler 400 (ungültige Anfrage) zurück.Sie können keine
wait-for-change
-Anfrage für ein Dienstkonto-Token ausführen. Wenn Sie versuchen, einewait-for-change
-Anfrage an die URL des Dienstkonto-Tokens zu senden, schlägt die Anfrage sofort fehl und gibt den Fehler 400 (ungültige Anfrage) zurück.- Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Verwenden Sie in Ihrer Linux-VM das
curl
-Tool, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage für den Metadateneintrag einer VM-Instanz durchzuführen:curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage für einen Projektmetadateneintrag durchzuführen:curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY" -H "Metadata-Flavor: Google"
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, den Sie abfragen möchten.Wenn der angegebene Metadatenschlüssel verändert wurde, gibt die Anfrage den neuen Wert zurück.
- Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Verwenden Sie in Ihrer Windows-VM den Befehl
Invoke-RestMethod
, um eine Abfrage zu stellen.PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/METADATA_KEY?wait_for_change=true") $valueFühren Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage für den Metadateneintrag einer VM-Instanz durchzuführen:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true") $value
Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage für einen Projektmetadateneintrag durchzuführen:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?wait_for_change=true") $value
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, für den Sie einewait-for-change
-Anfrage durchführen möchten.Wenn der angegebene Metadatenschlüssel verändert wurde, gibt die Anfrage den neuen Wert zurück.
- Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Stellen Sie eine Anfrage an diesen Schlüssel und drucken Sie die Header. Verwenden Sie dazu das
curl
-Tool mit dem Flag-v
:Führen Sie den folgenden Befehl aus, um das aktuelle ETag für den Metadateneintrag einer VM-Instanz abzurufen:
curl -v "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um das aktuelle ETag für einen Projektmetadateneintrag abzurufen:
curl -v "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY" -H "Metadata-Flavor: Google"
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.Mit dem folgenden Befehl wird beispielsweise der aktuelle ETag-Wert für den Metadatenschlüssel
tags
der Instanz abgerufen.user@myinst:~$ curl -v "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
Die Ausgabe sieht in etwa so aus:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
Sie können diesen ETag-Wert dann zusammen mit dem
curl
-Toolbefehl in derwait-for-change
-Anfrage verwenden:Führen Sie den folgenden Befehl aus, um den ETag-Wert für die
wait-for-change
-Anfrage von Instanzmetadaten zu verwenden:curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um den ETag-Wert für die
wait-for-change
-Anfrage von Projektmetadaten zu verwenden:curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.ETAG
: der ETag-Wert für den Metadatenschlüssel.
In diesem Beispiel verwendet der folgende Befehl den ETag-Wert für den Schlüssel
tags
und fragt den Metadateneintrag der Instanz ab.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e" -H "Metadata-Flavor: Google"
Der Metadatenserver überprüft diesen ETag-Wert und gibt die neuen Inhalte Ihres Metadatenschlüssels zurück, sollte er sich ändern.
- Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Stellen Sie eine Anfrage an diesen Schlüssel und drucken Sie die Header. Verwenden Sie unter Windows den
Invoke-WebRequest
-Befehl.Führen Sie den folgenden Befehl aus, um das aktuelle ETag für den Metadateneintrag einer VM-Instanz abzurufen:
$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY) $value.Headers.ETag
Führen Sie den folgenden Befehl aus, um das aktuelle ETag für einen Projektmetadateneintrag abzurufen:
$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY) $value.Headers.ETag
Ersetzen Sie
METADATA_KEY
durch den Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.Mit dem folgenden Befehl wird beispielsweise der aktuelle ETag-Wert für den Metadatenschlüssel
tags
der Instanz abgerufen.PS C:> $value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/tags)
$value.Headers.ETag
Die Ausgabe sieht in etwa so aus:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: / > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
Sie können den ETag-Wert dann in Ihrer
wait-for-change
-Anfrage verwenden:Führen Sie den folgenden Befehl aus, um den ETag-Wert für die
wait-for-change
-Anfrage von Instanzmetadaten zu verwenden:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true&last_etag=ETAG") $value
Führen Sie den folgenden Befehl aus, um den ETag-Wert für die
wait-for-change
-Anfrage von Projektmetadaten zu verwenden:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?wait_for_change=true&last_etag=ETAG") $value
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.ETAG
: der ETag-Wert für den Metadatenschlüssel.
In diesem Beispiel verwendet der folgende Befehl den ETag-Wert für den Schlüssel
tags
und fragt den Metadateneintrag der Instanz ab.PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e") $valueDer Metadatenserver überprüft diesen ETag-Wert und gibt die neuen Inhalte Ihres Metadatenschlüssels zurück, sollte er sich ändern.
- Stellen Sie eine Verbindung zu Ihrer Linux-VM her.
Verwenden Sie in Ihrer Linux-VM das
curl
-Tool, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage mit einem Zeitüberschreitungswert für den Metadateneintrag einer VM-Instanz durchzuführen:curl "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage mit einem Zeitüberschreitungswert für einen Projektmetadateneintrag durchzuführen:curl "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.TIMEOUT
: der Zeitüberschreitungswert.
- Stellen Sie eine Verbindung zu Ihrer Windows-VM her.
Verwenden Sie in Ihrer Windows-VM den Befehl
Invoke-RestMethod
, um eine Abfrage zu stellen.Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage mit einem Zeitüberschreitungswert für den Metadateneintrag einer VM-Instanz durchzuführen:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/METADATA_KEY?wait_for_change=true&timeout_sec=TIMEOUT") $value
Führen Sie den folgenden Befehl aus, um eine
wait-for-change
-Anfrage mit einem Zeitüberschreitungswert für einen Projektmetadateneintrag durchzuführen:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/project/METADATA_KEY?wait_for_change=true&timeout_sec=TIMEOUT") $value
Ersetzen Sie Folgendes:
METADATA_KEY
: der Instanz- oder Projektmetadatenschlüssel, für den Sie den Wert abfragen möchten.TIMEOUT
: der Zeitüberschreitungswert.
Anfragen mit dem Header
X-Forwarded-For
werden automatisch vom Metadatenserver abgewiesen. Dieser Header zeigt normalerweise an, dass die Anfrage weitergeleitet wurde und eventuell nicht von einem autorisierten Nutzer stammt. Aus Sicherheitsgründen werden Anfragen dieser Art abgelehnt.Wenn Sie den Befehl
curl
verwenden, um Metadaten vom Server abzurufen, beachten Sie, dass einige codierte Zeichen im Anfragepfad nicht unterstützt werden. Codierte Zeichen werden nur im Abfragepfad unterstützt.Die folgende Anforderung funktioniert beispielsweise eventuell nicht:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/123456789-compute%40developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
Damit diese Anfrage funktioniert, ersetzen Sie das nicht unterstützte codierte Zeichen im Anfragepfad (
%40
) durch den entsprechenden zulässigen Wert (@
).curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/1234567898-compute@developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
In der folgenden Tabelle sind die codierten Zeichen aufgeführt, die in Anfragepfaden nicht unterstützt werden.
Codiertes Zeichen Zulässiger Wert %21 !
%24 $
%27 '
%28 (
%29 )
%2A *
%2C ,
%40 @
Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Auf der Seite Metadaten sehen Sie eine Liste aller benutzerdefinierten Projektmetadateneinträge für Ihr Projekt.
PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, für die Sie die zonalen Projektmetadaten aufrufen möchten.PROJECT_ID
: Ihre Projekt-ID.ZONE
: die Zone, für die Sie die zonalen Projektmetadaten aufrufen möchten.- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der VM, für die Sie Metadaten aufrufen möchten.
SSH-Schlüssel für diese VM. Sehen Sie sich im Abschnitt Sicherheit und Zugriff das Feld SSH-Schlüssel an.
Der Wert von
None
gibt an, dass keine SSH-Schlüssel in Instanzmetadaten gespeichert sind.Jeder andere Wert gibt an, dass SSH-Schlüssel in Instanzmetadaten gespeichert sind.
SSH-Schlüssel für ein Projekt. Sehen Sie sich im Abschnitt Sicherheit und Zugriff das Feld Projektweite SSH-Schlüssel blockieren an.
Der Wert
On
gibt an, dass der Wert des Metadatenschlüsselsblock-project-ssh-keys
in den InstanzmetadatenTRUE
ist.Der Wert von
Off
gibt an, dass der Metadatenschlüsselblock-project-ssh-keys
den WertFALSE
hat oder der Schlüssel nicht festgelegt ist.
Alle anderen benutzerdefinierten Metadaten. Rufen Sie den Abschnitt Benutzerdefinierte Metadaten auf. Sie sehen alle benutzerdefinierten Metadatenschlüssel und -werte außer SSH-Schlüsselmetadaten.
PROJECT_ID
: Ihre Projekt-IDZONE
: die Zone, in der sich die VM befindetVM_NAME
: der Name der VM- Mehr über VM-Metadaten erfahren
- Benutzerdefinierte Metadaten festlegen
- Gastattribute festlegen und abfragen
Python
Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
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
Die folgenden Rollen und Berechtigungen sind erforderlich, um benutzerdefinierte Metadaten über die Google Cloud Console, die Google Cloud CLI oder REST außerhalb der VM aufzurufen. Wenn Sie die Metadaten programmatisch innerhalb der VM abfragen, benötigen Sie nur die Rollen und Berechtigungen für die Verbindung zur VM.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen benutzerdefinierter Metadaten von außerhalb der VM benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Aufrufen benutzerdefinierter Metadaten von außerhalb der VM erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um benutzerdefinierte Metadaten von außerhalb der VM aufzurufen:
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Metadaten programmatisch abfragen
Innerhalb einer VM können Sie entweder standardmäßige oder benutzerdefinierte Metadatenwerte programmatisch mit Tools wie
curl
unter Linux oderInvoke-RestMethod
unter Windows abfragen.Bestandteile einer Metadatenanfrage
In der folgenden Tabelle sind die wichtigsten Teile einer Metadatenabfrage zusammengefasst.
Komponenten Beschreibung Stamm-URL Alle Metadatenwerte werden als Subpfade unterhalb der folgenden Stamm-URLs definiert:
Anfrage-Header Dieser Header weist darauf hin, dass eine Anfrage zum Aufruf von Metadatenwerten gesendet wurde und diese nicht unbeabsichtigt aus einer unsicheren Quelle kommen. Auf diese Weise kann der Metadatenserver Ihnen die entsprechenden Daten zurückgeben. Ohne diesen Header lehnt der Metadatenserver Ihre Anfrage ab.
Metadata-Flavor: Google
Einzelnen Metadateneintrag abfragen
Verwenden Sie die folgenden Befehle, um einen einzelnen Metadateneintrag abzufragen.
Linux
Windows
Metadatenverzeichniseinträge abfragen
Verwenden Sie die folgenden Befehle, um Metadaten-Verzeichniseinträge abzufragen. Verzeichniseinträge sind Metadateneinträge, die andere Metadatenschlüssel enthalten. Alle Metadateneinträge, die mit einem Schrägstrich enden, sind Verzeichniseinträge.
Linux
Windows
Der Eintrag
disks/
ist ein Verzeichnis von Laufwerken, das an die VM angehängt ist. Führen Sie die folgenden Schritte aus, um den Laufwerkeintrag abzufragen:Verzeichniseinträge rekursiv abfragen
Wenn Sie alle Inhalte in einem Verzeichnis zurückgeben möchten, verwenden Sie den Abfrageparameter
recursive=true
mit Ihrer Anfrage:Linux
Windows
Ausgabe der Abfrage formatieren
Standardmäßig besitzt jeder Endpunkt ein vordefiniertes Format für die Antwort. Einige Endpunkte können JSON-Daten zurückgeben, während andere die Daten als String darstellen. Sie können das Standardformat für Daten mit den Abfrageparametern
alt=json
oderalt=text
ändern, die Daten als JSON-String oder als Klartextdarstellung zurückgeben.Linux
Beispiel
Der Schlüssel
tags
gibt beispielsweise Daten automatisch im JSON-Format zurück. Sie können stattdessen Daten im Textformat zurückgeben, indem Sie den Abfrageparameteralt=text
angeben.Standardsuchanfrage
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
["http-server", "db-client", "app-server", "mysql-server"]
Abfrage mit Formatierung
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text" -H "Metadata-Flavor: Google"
Die Ausgabe sieht etwa so aus:
http-server db-client app-server mysql-server
Windows
Beispiel
Der Schlüssel
tags
gibt beispielsweise Daten automatisch im JSON-Format zurück. Sie können stattdessen Daten im Textformat zurückgeben, indem Sie den Abfrageparameteralt=text
angeben.Standardsuchanfrage
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags") $valueDie Ausgabe sieht etwa so aus:
["http-server", "db-client", "app-server", "mysql-server"]
Abfrage mit Formatierung
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text") $valueDie Ausgabe sieht etwa so aus:
http-server db-client app-server mysql-server
Metadatenänderungen mit dem
wait-for-change
-Feature abfragenDa sich Metadatenwerte ändern können, während Ihre VM ausgeführt wird, kann der Metadatenserver mithilfe des Features
wait-for-change
über Metadatenänderungen informiert werden. Bei dieser Option gibt die Anfrage nur dann eine Ausgabe zurück, wenn sich die angegebenen Metadaten geändert haben.Sie können dieses Feature für benutzerdefinierte oder serverdefinierte Metadaten verwenden. Sobald sich also etwas an Ihrer VM oder Ihrem Projekt ändert, oder jemand einen benutzerdefinierten Metadateneintrag aktualisiert, können Sie programmatisch auf die Änderung reagieren.
Sie können beispielsweise eine Anfrage für den Schlüssel
tags
ausführen, sodass die Anfrage nur zurückgegeben wird, wenn sich der Inhalt der Metadaten der Tags geändert hat. Wird die Anfrage zurückgegeben, beinhaltet sie den neuen Wert des Metadatenschlüssels.Mit dem Feature
wait-for-change
können Sie auch einen Abgleich mit Ihrer Anfrage durchführen und Zeitlimits festlegen.Beachten Sie bei der Arbeit mit dem Feature
wait-for-change
Folgendes:Zum Ausführen einer
wait-for-change
-Anfrage fragen Sie einen Metadatenschlüssel ab und hängen den Abfrageparameter?wait_for_change=true
an:Linux
Beispiele
In diesem Beispiel wurde eine Anfrage an
setInstanceTags method
gerichtet und gibt neue Werte zurück:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true" -H "Metadata-Flavor: Google"
Die Ausgabe sieht in etwa so aus:
http-server db-client
Sie können auch eine
wait-for-change
-Anfrage rekursiv für den Inhalt eines Verzeichnisses durchführen:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&wait_for_change=true" -H "Metadata-Flavor: Google"
Der Metadatenserver gibt die neuen Inhalte an, sollte es Veränderungen gegeben haben:
{"foo":"bar","baz":"bat"}
Windows
Beispiele
Wenn der angegebene Metadatenschlüssel verändert wurde, gibt die Anfrage den neuen Wert zurück. In diesem Beispiel wurde eine Anfrage an
setInstanceTags method
gerichtet und gibt neue Werte zurück:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true") $valueDie Ausgabe sieht in etwa so aus:
http-server db-client
Sie können auch eine
wait-for-change
-Anfrage rekursiv für die Inhalte eines Verzeichnisses durchführen:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes?recursive=true&wait_for_change=true") $valueDer Metadatenserver gibt die neuen Inhalte an, sollte es Veränderungen gegeben haben:
{"foo":"bar","baz":"bat"}
ETags verwenden
Wenn Sie eine einfache
wait-for-change
-Abfrage senden, gibt der Metadatenserver eine Antwort zurück, wenn sich im Inhalt dieser Metadaten etwas geändert hat. Jedoch gibt es immer einen Wettlauf zwischen der Aktualisierung von Metadaten und einerwait-for-change
-Anfrage. Deswegen lohnt es sich, eine verlässliche Methode zu haben, um herauszufinden, ob Sie den neuesten Metadatenwert erhalten.Dafür haben wir Ihnen den
last_etag
-Anfrageparameter zur Verfügung gestellt, der Ihren ETag-Wert mit dem vergleicht, der auf dem Metadatenserver gespeichert ist. Wenn die ETag-Werte übereinstimmen, wird die Anfragewait-for-change
akzeptiert. Stimmen die ETag-Werte nicht überein, dann bedeutet das, dass sich seit dem letzten Aufruf des ETag-Werts etwas verändert hat. Der Metadatenserver sendet diesen neuen Wert sofort zurück.Linux-VMs
Führen Sie die folgenden Schritte aus, um den aktuellen ETag-Wert für einen Metadatenschlüssel abzurufen:
Windows-VMs
Führen Sie die folgenden Schritte aus, um den aktuellen ETag-Wert für einen Metadatenschlüssel abzurufen:
Python
Das folgende Beispiel für Python zeigt, wie Sie den Metadatenserver programmatisch auf Änderungen überwachen können.
In diesem Beispiel wird das Anfangs-ETag auf
0
gesetzt. Der Metadatenserver gibt keine Antwort mit0
als ETag-Wert zurück. Wenn0
in einer Anfrage als letztes ETag erscheint, antwortet der Metadatenserver mit dem aktuellen Wert und dem ETag. Dadurch wird ein Teil des Codes gespart, der zum Abrufen des Anfangswerts und des ETags erforderlich ist.Zeitlimits festlegen
Wenn Sie möchten, dass Ihre
wait-for-change
-Anfrage nach einer bestimmten Anzahl von Sekunden abläuft, können Sie den Parametertimeout_sec
festlegen. Der Parametertimeout_sec
beschränkt die Wartezeit Ihrer Anfrage auf die von Ihnen angegebene Anzahl an Sekunden. Erreicht die Anfrage diesen Wert, ruft sie den aktuellen Inhalt des Metadatenschlüssels auf.Wenn Sie den
timeout_sec
-Parameter einrichten, wird die Anfrage jeweils unabhängig davon, ob sich die Metadatenwerte verändert haben, nach Ablauf der Zeit zurückgegeben. Nur ganze Zahlen dürfen als Zeitlimit festgelegt werden.Linux
Mit dem folgenden Befehl wird beispielsweise eine
wait-for-change
-Anfrage ausgeführt, die nach 360 Sekunden mit einer Zeitüberschreitung abläuft:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360" -H "Metadata-Flavor: Google"
Windows
Mit dem folgenden Befehl wird beispielsweise eine
wait-for-change
-Anfrage ausgeführt, die nach 360 Sekunden mit einer Zeitüberschreitung abläuft:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360") $valueStatuscodes
Wenn Sie eine
wait-for-change
-Anfrage ausführen, gibt der Metadatenserver Standard-HTTP-Statuscodes zurück, um Erfolg oder Misserfolg anzuzeigen. Tritt ein Fehler auf, kann es sein, dass der Metadatenserver Ihre Anfrage abweist und Ihnen einen Fehlercode schickt. Geschieht dies, sollten Sie Ihre Anwendung so ändern, dass sie fehlertolerant ist und diese Art von Fehlern erkennen und mit ihnen umgehen kann.Mögliche Statusanzeigen des Metadatenservers:
Status Beschreibung HTTP 200
Fertig! Ein Wert wurde geändert oder der für timeout_sec
angegebene Wert wurde erreicht und die Anfrage wurde erfolgreich beantwortet.Error 400
Ihre Anfrage war ungültig. Bitte korrigieren Sie Ihre Anfrage und versuchen Sie es noch einmal. Error 404
Der Metadatenwert, den Sie angegeben haben, existiert nicht mehr. Der Metadatenserver zeigt diesen Fehler an, wenn Ihre Metadaten gelöscht wurden, während Sie auf eine Veränderung warten. Error 503
Ein temporärer Serverfehler oder ein temporäres Wartungsereignis ist aufgetreten. Wiederholen Sie die Anfrage. Beschränkungen
Benutzerdefinierte Metadaten für Ihre VMs aufrufen
Sie können die benutzerdefinierten Metadatenwerte für Ihre Compute Engine-VMs auf eine der folgenden Arten aufrufen:
Projektmetadaten anzeigen
Verwenden Sie eine der folgenden Methoden, um benutzerdefinierte Metadaten aufzurufen, die für alle VMs in Ihrem Projekt gelten.
Console
gcloud
Verwenden Sie den Befehl
gcloud compute project-info describe
, um Projektmetadaten abzufragen:gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
Die Ausgabe sieht in etwa so aus:
--- fingerprint: HcSFdS_1_1I= items: - key: ssh-keys value: USERNAME:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWZ... kind: compute#metadata
REST
Erstellen Sie zum Abfragen von Projektmetadaten eine
GET
-Anfrage an dieproject.get
-Methode.Ersetzen Sie dabei
PROJECT_ID
durch Ihre Projekt-ID.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Die Ausgabe sieht in etwa so aus:
"kind": "compute#project", "id": "XXXXXXX", "creationTimestamp": "2018-12-10T08:34:33.616-08:00", "name": "YOUR_PROJECT", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "XXXXXCdg=", "items": [ { "key": "enable-guest-attributes", "value": "TRUE" }, { "key": "enable-os-inventory", "value": "true" }, { "key": "enable-osconfig", "value": "TRUE" }, { "key": "enable-oslogin", "value": "TRUE" }, { "key": "sshKeys", "value": "XXXXX" } ] }, ...
Zonale Metadaten aufrufen
Verwenden Sie eine der folgenden Methoden, um benutzerdefinierte Metadaten aufzurufen, die für alle VM-Instanzen in einer bestimmten Zone in einem Projekt gelten.
gcloud
Verwenden Sie den Befehl
gcloud compute project-zonal-metadata describe
, um die benutzerdefinierten zonalen Metadaten abzufragen.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
Die Ausgabe sieht in etwa so aus:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
REST
Senden Sie eine
GET
-Anfrage an die MethodeinstanceSettings().get
, um die benutzerdefinierten zonalen Metadaten abzufragen.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ersetzen Sie Folgendes:
Die Ausgabe sieht in etwa so aus:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
Instanzmetadaten aufrufen
Verwenden Sie eine der folgenden Methoden, um Metadaten aufzurufen, die für eine einzelne VM in Ihrem Projekt gelten.
Console
gcloud
Verwenden Sie den Befehl
gcloud compute instances describe
, um Instanzmetadaten abzufragen:gcloud compute instances describe VM_NAME --flatten="metadata[]"
Ersetzen Sie
VM_NAME
durch den Namen der VM, für die Sie Metadaten suchen möchten.Die Ausgabe sieht in etwa so aus:
--- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata
REST
Um Metadaten für eine bestimmte VM abzufragen, senden Sie eine
GET
-Anfrage an dieinstances.get
-Methode.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Die Ausgabe sieht in etwa so aus:
...... "metadata": { "kind": "compute#metadata", "fingerprint": "XXXXXXVo=", "items": [ { "key": "enable-oslogin", "value": "true" } ] },....
Ersetzen Sie Folgendes:
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).
-