Ressourcen mit Labels versehen

Mit Labels können Ressourcen, die zusammenhängen oder miteinander verknüpft sind, auf einfache Weise gruppiert werden. Es ist z. B. üblich, Ressourcen, die für Produktion, Staging oder Entwicklung bestimmt sind, separat mit Labels zu versehen, damit bei Bedarf leicht nach Ressourcen gesucht werden kann, die zu einer bestimmten Entwicklungsphase gehören. Ihre Labels heißen möglicherweise production:webserver, production:database, dev:webserver und so weiter. Labels werden immer als Schlüssel/Wert-Paare hinzugefügt:

{
 "labels": {
    "production": "webserver",
    "location": "west",...
 }

Sie können Labels auf die folgenden Ressourcen anwenden:

  • VM-Instanzen
  • Weiterleitungsregeln (Alpha)
  • Images
  • Persistente Festplatten
  • Snapshots persistenter Festplatten
  • Statische externe IP-Adressen (Alpha)
  • VPN-Tunnel (Alpha)

Wenn Sie Ihren Ressourcen Labels hinzufügen, können Sie mithilfe dieser Labels auch Funktionen wie die verschachtelte Filterung nutzen, um genauer nach Ressourcen suchen zu können.

Vorbereitung

Beschränkungen

  • Sie können jeder Ressource bis zu 64 Labels zuweisen.
  • Ressourcen, die als Alpha aufgelistet sind, werden bisher noch nicht von gcloud oder der Google Cloud Platform Console unterstützt. Verwenden Sie stattdessen die Alpha API, um Labels für diese Ressourcen festzulegen.
  • Labelschlüssel und -werte unterliegen den folgenden Beschränkungen:

    • Schlüssel und Werte dürfen jeweils nicht mehr als 63 Zeichen umfassen.
    • Schlüssel und Werte dürfen nur Kleinbuchstaben, numerische Zeichen, Unterstriche und Bindestriche enthalten. Internationale Zeichen sind zulässig
    • Labelschlüssel müssen mit einem Kleinbuchstaben beginnen, internationale Zeichen sind zulässig.
    • Labelschlüssel dürfen nicht leer sein.

Ressourcen mit Labels erstellen

Beim Erstellen einer neuen Ressource können Sie der Ressource Labels zuweisen.

Console

  1. Gehen Sie auf die Seite "Instanz erstellen"

    Zur Seite "Instanz erstellen"

  2. Maximieren Sie den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  3. Geben Sie unter Verwaltung die Labels an, die Sie dieser Ressource hinzufügen möchten.
  4. Fahren Sie mit der Erstellung fort.

gcloud

Geben Sie beim Erstellen der Ressource das Flag --labels gefolgt von einer durch Kommas getrennten Liste aus Schlüssel/Wert-Paaren von Labels an. Beispiel:

gcloud compute instances create ... --labels webserver=backend,media=images

Dasselbe Flag wird bei der Erstellung von Images und Laufwerken verwendet.

API

Um in der API während des POST-Requests eine neue Ressource hinzuzufügen, fügen Sie die labels-Eigenschaft in den Request-Text ein, damit die Labels der neuen Ressource zugewiesen werden. Der Request-Text für die Erstellung einer VM-Instanz hat zum Beispiel die folgenden Labels:

body = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
   ...,
  "labels": [{
    "key": "webserver",
    "value": "backend"
    },
    {
    "key": "media",
    "value": "images"
   }]
 }

Die gleiche Eigenschaft kann beim Erstellen von Images und Laufwerken angewendet werden.

Labels nachträglich zu Ressourcen hinzufügen oder aktualisieren

Sie können bestehende Ressourcen mit Labels versehen oder diese auch aktualisieren.

Console

  1. Gehen Sie zur entsprechenden Ressourcenseite, für die Sie Labels hinzufügen möchten.
  2. Klicken Sie auf die Kästchen neben den Ressourcen, die Sie mit Labels versehen möchten.
  3. Klicken Sie auf Infofeld anzeigen, um die Spalte mit den Labels zu erweitern, falls diese nicht bereits angezeigt wird.
  4. Aktualisieren Sie die Labels oder fügen Sie neue hinzu.
  5. Speichern Sie die Änderungen.

gcloud

Geben Sie im gcloud-Befehlszeilentool den Unterbefehl update mit dem Flag --update-labels ein, um ein Label hinzuzufügen oder zu ändern. Um beispielsweise einem Laufwerk ein Label hinzuzufügen, verwenden Sie den Unterbefehl gcloud compute disks update [DISK] --update-labels:

gcloud compute disks update example-disk --update-labels backend=webserver,media=images

Geben Sie einen bestehenden Labelschlüssel ein, um den Schlüssel mit dem neuen Labelwert zu aktualisieren. Geben Sie einen neuen Schlüssel ein, um diesen zur Labelliste hinzuzufügen.

Verwenden Sie für Instanzen, Snapshots und Images die Befehle gcloud compute instances, gcloud compute snapshots oder gcloud compute images.

API

Wenn Sie Labels hinzufügen oder aktualisieren möchten, stellen Sie eine POST-Anfrage an die Methode setLabels der entsprechenden Ressource mit dem neuesten Fingerabdruck und einer vollständigen Liste der Labels, die zugewiesen werden sollen.

Wenn Sie die bisherigen Labels der Ressource übernehmen möchten, muss die Anfrage, ähnlich wie bei Metadaten und Tags, diese Labels zusammen mit allen neu hinzuzufügenden Labels enthalten.

Durch das folgende Snippet wird z. B. eine Anfrage an die Methode setLabels einer Instanz gestellt. Sie können auch eine Anfrage an die Methode setLabels eines Laufwerks, eines Snapshots oder eines Images stellen:

Request

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels

{
 "labels": {
  "env": "test",
  "an-existing-tag": ""
 },
 "labelFingerprint": "42WmSpB8rSM="
}

Es funktioniert ähnlich, wenn Sie Ressourcen bei deren Erstellung Labels hinzufügen möchten. Dazu geben Sie das Objekt labels an.

Einen Labelfingerabdruck für API-Requests beziehen

Wenn Sie Labels in der API aktualisieren oder hinzufügen, müssen Sie mit dem Request den neuesten Labelfingerabdruck angeben, um Konflikte mit anderen Requests zu vermeiden. Dies gilt nur für API-Anfragen. In der GCP Console und im gcloud-Tool ist kein Fingerabdruck erforderlich.

Um den jüngsten Labelfingerabdruck für eine Anfrage abzurufen, stellen Sie einen GET-Request an die entsprechende Ressource. Durch das folgende Snippet wird z. B. ein labelsFingerprint für eine Instanz angefordert. Sie können eine ähnliche Anfrage an ein Laufwerk, einen Snapshot oder ein Image stellen.

Suchen Sie die labelFingerprint-Eigenschaft:

Request

GET https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
200 OK

{

 "kind": "compute#instance",
 "id": "4392196237934605253",
 "creationTimestamp": "2015-09-15T14:05:16.475-07:00",
 "zone": "https://content.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
 "status": "RUNNING",
 ...
 "labels": {
  "env": "test"
 },
 "labelFingerprint": "p1ty_9HoBk0="
}

Ein Label entfernen

Console

  1. Gehen Sie zur entsprechenden Ressourcenseite, für die Sie Labels hinzufügen möchten.
  2. Wählen Sie das Kästchen neben den Ressourcen aus, für die Sie Labels entfernen möchten.
  3. Klicken Sie auf Infofeld anzeigen, um die Spalte mit den Labels zu erweitern.
  4. Klicken Sie auf das X neben den Labels, die Sie entfernen möchten.
  5. Speichern Sie die Änderungen.

gcloud

Führen Sie im Befehlszeilentool gcloud den Befehl update mit dem Flag --remove-labels aus. Geben Sie die Schlüssel der Labels an, die entfernt werden sollen. Beispiel:

gcloud compute disks update example-disk --remove-labels backend,media

Für Snapshots und Bilder verwenden Sie die Sammlungen gcloud compute snapshots oder gcloud compute images.

API

Stellen Sie in der API eine POST-Anfrage an die Methode setLabels der entsprechenden API-Ressource: Instanzen, Laufwerke und Snapshots.

Geben Sie den aktuellen labelsFingerprint und eine leere Labelliste an, um alle Labels zu entfernen. Oder geben Sie eine Liste der Labels an, die Sie behalten möchten (und lassen Sie die Labels aus, die entfernt werden sollen). Beispiel:

Request

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels

{
 "labels": { },
 "labelFingerprint": "42WmSpB8rSM="
}

Suchanfragen mit Labels filtern

Sie können Ihre Ressourcen durchsuchen und die Ergebnisse nach Labels filtern.

Console

  1. Gehen Sie zur entsprechenden Ressourcenseite, für die Sie Labels hinzufügen möchten.

gcloud

Stellen Sie in gcloud einen list-Request und verwenden Sie das Flag --filter. Verwenden Sie die Syntax labels.key=[VALUE], um Labels zu filtern. Wenn Sie beispielsweise ein Label mit dem Schlüssel env und dem Wert dev herausfiltern möchten, können Sie diesen Befehl ausführen:

gcloud compute instances list --filter labels.env=dev

Eine vollständige Dokumentation zur Filtersyntax im gcloud-Tool finden Sie in der Dokumentation zu gcloud topic filters.

API

Stellen Sie in der API einen Listen-Request mit dem URL-codierten Suchparameter filter: Stellen Sie zum Beispiel zum Filtern basierend auf einem Labelschlüssel env, der gleichwertig mit dem Wert dev ist, folgenden GET-Request:

GET https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/list?filter=labels.env+eq+dev

Weitere Informationen finden Sie in der filter-Dokumentation der API-Referenz.

Beziehung zwischen Instanzlabels und Netzwerk-Tags

In der Vergangenheit waren Labels und Tags verwandt. Wenn Sie einer VM-Instanz beispielsweise ein webserver:test-Label hinzugefügt haben, fügte Compute Engine der Instanz automatisch ein webserver-Tag hinzu.

Jetzt sind Etiketten und Tags getrennt. Wenn Sie eine Beschriftung für eine Instanz erstellen, erstellt Compute Engine kein Tag für die Instanz. Wenn Sie ein Tag für eine Instanz erstellen müssen, müssen Sie dies manuell erstellen.

Weitere Informationen zum Erstellen von Tags finden Sie auf der Seite "Netzwerk-Tags".

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation