Ressourcen mithilfe von Labels organisieren


Labels sind Schlüssel/Wert-Paare, mit denen Sie in Google Cloud verwandte oder zugehörige Ressourcen gruppieren können. In Compute Engine können Sie beispielsweise Labels verwenden, um VMs in Kategorien wie Produktion, Staging oder Entwicklung zu gruppieren, sodass Sie nach Ressourcen suchen können, die zu jeder Entwicklungsphase gehören.

Wenn Sie Ihren Ressourcen Labels hinzufügen, können Sie die verschachtelte Filterung verwenden, um mithilfe von Labels genauere Suchvorgänge in Bezug auf Ihre Ressourcen durchzuführen.

Hinweise

  • Lesen Sie die Dokumentation zu persistenten Festplatten.
  • Lesen Sie die Dokumentation zu Images.
  • 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.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Was sind Labels?

Ein Label ist ein Schlüssel/Wert-Paar, das Sie Google Cloud-Instanzen zuweisen können. Sie helfen Ihnen dabei, diese Ressourcen zu organisieren und Ihre Kosten im erforderlichen Umfang zu verwalten. Sie können jeder Ressource ein Label zuweisen und dann die Ressourcen basierend auf ihren Labels filtern. Informationen zu Labels werden an das Abrechnungssystem weitergeleitet, sodass Sie die abgerechneten Gebühren nach Label aufschlüsseln können. Dank integrierter Abrechnungsberichte können Sie Kosten nach Ressourcenlabels filtern und gruppieren. Sie können Labels auch verwenden, um Abrechnungsdatenexporte abzufragen.

Anforderungen an Labels

Die Labels, die auf eine Ressource angewendet werden, müssen die folgenden Anforderungen erfüllen:

  • Jede Ressource kann bis zu 64 Labels haben.
  • Jedes Label muss ein Schlüssel/Wert-Paar sein.
  • Schlüssel haben eine Mindestlänge von 1 Zeichen und eine maximale Länge von 63 Zeichen und dürfen nicht leer sein. Werte dürfen leer sein und haben eine maximale Länge von 63 Zeichen.
  • Schlüssel und Werte dürfen nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten. Alle Zeichen müssen UTF-8-codiert sein. Internationale Zeichen sind zulässig. Schlüssel müssen mit einem Kleinbuchstaben oder einem internationalen Zeichen beginnen.
  • Der Schlüsselabschnitt eines Labels darf in einer einzelnen Ressource nur einmal vorkommen. Sie können jedoch denselben Schlüssel für mehrere Ressourcen verwenden.

Die Limits gelten für den Schlüssel und den Wert für jedes Label und für die einzelnen Google Cloud-Ressourcen, die Labels haben. Es gibt keine Beschränkung, wie viele Labels Sie auf alle Ressourcen in einem Projekt anwenden können.

Einsatzmöglichkeiten von Labels

Labels kommen u. a. in folgenden Situationen zum Einsatz:

  • Labels für Teams oder Kostenstellen: Fügen Sie Labels basierend auf einem Team oder einer Kostenstelle hinzu, um zwischen den Instanzen verschiedener Teams zu unterscheiden (z. B. team:research und team:analytics). Sie können diese Art von Label für die Kostenabrechnung oder Budgetplanung nutzen.

  • Labels für Komponenten: z. B. component:redis, component:frontend, component:ingest und component:dashboard.

  • Labels für Umgebungen oder Phasen: z. B. environment:production und environment:test.

  • Labels für Status: z. B. state:active, state:readytodelete und state:archive.

  • Labels für Eigentumsrechte: Wird verwendet, um die Teams zu identifizieren, die für den Betrieb verantwortlich sind, z. B. team:shopping-cart.

  • Labels für virtuelle Maschinen: Labels können an virtuelle Maschinen angehängt werden. Tags einer virtuellen Maschine, die Sie früher definiert haben, werden als Label ohne Wert angezeigt.

Es wird empfohlen, nicht zu viele eindeutige Labels zu erstellen, etwa für Zeitstempel oder einzelne Werte für einzelne API-Aufruf. Das Problem bei diesem Ansatz besteht darin, dass es schwierig ist, Ressourcen effektiv zu filtern und Berichte über sie zu erstellen, wenn sich die Werte häufig ändern oder wenn Schlüssel verwendet werden, die den Katalog überlasten.

Labels und Tags

Labels können als abfragbare Annotationen für Ressourcen verwendet werden, aber nicht zum Festlegen von Bedingungen für Richtlinien. Mit Tags können Sie Richtlinien auf Basis der Bedingung genehmigen oder ablehnen, ob eine Ressource ein bestimmtes Tag hat. Dazu müssen Sie eine detaillierte Richtlinienkontrolle ermöglichen. Weitere Informationen finden Sie in der Tag-Übersicht.

Labels in Compute Engine verwenden

Sie können Labels auf die folgenden Compute Engine-Ressourcen anwenden:

  • VM-Instanzen
  • Bilder
  • Persistente Festplatten
  • Snapshots nichtflüchtiger Speicher

Sie können auch Labels für verwandte Google Cloud-Komponenten wie die folgenden verwenden:

Sie können Ihren Ressourcen beispielsweise die folgenden Labels als Schlüssel/Wert-Paare hinzufügen:

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

Ressourcen mit Labels erstellen

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

Console

  1. Rufen Sie die Ressourcenseite auf, die Sie erstellen möchten.

  2. Klicken Sie unter Labels auf Label hinzufügen.

  3. Fahren Sie mit der Erstellung fort.

gcloud

Zum Hinzufügen eines Labels verwenden Sie den Unterbefehl create mit dem Flag --labels. Mit den folgenden gcloud-Befehlen können Sie den Compute Engine-Ressourcen Labels hinzufügen:

Beispiel

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

API

Fügen Sie in der API während der POST-Anfrage zum Hinzufügen einer neuen Ressource das labels-Attribut in den Anfragetext ein, damit die Labels der neuen Ressource zugewiesen werden.

Das folgende Snippet stellt beispielsweise eine POST-Anfrage, um eine VM-Instanz mit den Labels webserver:backend und media:images zu erstellen:

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

{
 "name": "myVM",
 "machineType": "zones/us-central1-f/machineTypes/custom-2-15360-ext",
  ...,
 "labels": {
   "webserver": "backend",
   "media": "images"
  }
}

Labels nachträglich Ressourcen hinzufügen oder aktualisieren

Mit der Google Cloud Console, der gcloud CLI oder der Compute Engine API können Sie Labels hinzufügen oder vorhandene Labels für Ressourcen aktualisieren. Verwenden Sie die gcloud CLI oder die Compute Engine API, um Labels für Weiterleitungsregeln hinzuzufügen oder zu aktualisieren.

Console

  1. Rufen Sie die entsprechende Ressourcenseite auf, für die Sie Labels hinzufügen möchten.

    • VM-Instanzen finden Sie unter VM-Instanzen.
    • Informationen zu Snapshots finden Sie unter Snapshots.
    • Rufen Sie für Images Images auf.
    • Informationen zu Laufwerken finden Sie unter Laufwerke.
    • Informationen zu statischen externen IP-Adressen finden Sie unter Externe IP-Adressen.
    • Informationen zu VPN-Tunneln finden Sie unter VPN.
  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 für Labels zu erweitern.

  4. Wählen Sie im Infofeld Labels aus.

  5. Klicken Sie zum Hinzufügen von Labels auf Label hinzufügen und fügen Sie das Schlüssel/Wert-Paar hinzu.

  6. Um Labels zu aktualisieren, wählen Sie die vorhandenen Labels aus und ändern Sie deren Werte.

  7. Speichern Sie die Änderungen.

gcloud

Zum Hinzufügen oder Ändern eines Labels verwenden Sie den Unterbefehl update mit dem Flag --update-labels. Mit den folgenden gcloud-Befehlen können Sie Labels für die Compute Engine-Ressourcen aktualisieren:

Beispiel

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

Wenn Sie einen bereits vorhandenen Labelschlüssel angeben, aktualisiert das Google Cloud CLI den vorhandenen Schlüssel mit dem neuen Labelwert. Wenn Sie einen neuen Schlüssel angeben, fügt das Werkzeug den neuen Schlüssel zur Liste der Labels hinzu.

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 des Clusters übernehmen möchten, muss die Anfrage, ähnlich wie bei Metadaten und Tags, neben den neu hinzuzufügenden auch diese bisherigen Labels enthalten.

Das folgende Snippet stellt beispielsweise eine POST-Anfrage an eine VM-Instanz, um die Labels environment:test und an-existing-tag:yes festzulegen:

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

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

Labels anzeigen

Sie können Labels für Ressourcen mit der Google Cloud Console, der gcloud CLI oder der Compute Engine API anzeigen lassen. Verwenden Sie die gcloud CLI oder die Compute Engine API, um Labels für Weiterleitungsregeln aufzurufen.

Console

  1. Gehen Sie zur Ressourcenseite.

    • VM-Instanzen finden Sie unter VM-Instanzen.
    • Informationen zu Snapshots finden Sie unter Snapshots.
    • Rufen Sie für Images Images auf.
    • Informationen zu Laufwerken finden Sie unter Laufwerke.
    • Informationen zu statischen externen IP-Adressen finden Sie unter Externe IP-Adressen.
    • Informationen zu VPN-Tunneln finden Sie unter VPN.
  2. Klicken Sie auf die Ressource, um die Details aufzurufen.

  3. Suchen Sie Labels.

gcloud

Verwenden Sie den Unterbefehl describe, um Labels anzusehen. Mit den folgenden gcloud-Befehlen können Sie Labels für die Compute Engine-Ressourcen anzeigen lassen:

Beispiel

gcloud compute disks describe example-disk

Die Ausgabe enthält die folgenden Labels:

...
id: '5047929990219134234'
kind: compute#disk
labelFingerprint: GHZ1Un209U=0
labels:
  environment: dev
  department: finance
...

API

Um Labels abzurufen, stellen Sie eine GET-Anfrage an die folgende Ressource:

Durch das folgende Snippet wird beispielsweise eine GET-Anfrage zum Abrufen von Labels für eine VM-Instanz gestellt:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Dabei gilt:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone der VM
  • VM_NAME: Der Name der VM

Labelfingerabdrücke für API-Requests abrufen

Wenn Sie Labels in der API aktualisieren oder hinzufügen, müssen Sie mit der Anfrage den neuesten Labelfingerabdruck angeben, um Konflikte mit anderen Anfragen zu vermeiden. Ein Fingerabdruck ist nur für API-Anfragen erforderlich. Die Google Cloud Console und das Google Cloud-Befehlszeilentool benötigen keinen Fingerabdruck.

Um die neueste labelsFingerprint zu erhalten, stellen Sie eine GET-Anfrage an die folgenden Ressourcen:

Das folgende Snippet ruft beispielsweise einen labelsFingerprint für eine VM-Instanz ab:

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

Die Antwort enthält das Attribut labelFingerprint:

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": {
  "environment": "test"
 },
 "labelFingerprint": "p1ty_9HoBk0="
}

Label entfernen

Sie können Labels aus Ressourcen mithilfe der Google Cloud Console, der gcloud CLI oder der Compute Engine API entfernen. Verwenden Sie die gcloud CLI oder die Compute Engine API, um Labels für Weiterleitungsregeln zu entfernen.

Console

  1. Rufen Sie die entsprechende Ressourcenseite auf, für die Sie Labels entfernen möchten.

    • VM-Instanzen finden Sie unter VM-Instanzen.
    • Informationen zu Snapshots finden Sie unter Snapshots.
    • Rufen Sie für Images Images auf.
    • Informationen zu Laufwerken finden Sie unter Laufwerke.
    • Informationen zu statischen externen IP-Adressen finden Sie unter Externe IP-Adressen.
    • Informationen zu VPN-Tunneln finden Sie unter VPN.
  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 für Labels zu erweitern.

  4. Um ein Label zu löschen, klicken Sie auf Löschen.

  5. Speichern Sie die Änderungen.

gcloud

Zum Hinzufügen oder Ändern eines Labels verwenden Sie den Unterbefehl update mit dem Flag --remove-labels. Mit den folgenden gcloud-Befehlen können Sie Labels für die Compute Engine-Ressourcen entfernen:

Beispiel

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

API

Senden Sie zum Entfernen von Labels die Anfrage POST an die Methode setLabels der folgenden Ressource mit dem neuesten Fingerabdruck und einer vollständigen Liste der Labels, die zugewiesen werden sollen:

Geben Sie den aktuellen labelsFingerprint und eine leere Labelliste an, um alle Labels zu entfernen, oder geben Sie eine Liste mit den Labels an, die Sie beibehalten möchten. Geben Sie in diesem Fall nicht die Labels an, die Sie entfernen möchten. Durch das folgende Snippet werden beispielsweise alle Labels von der VM entfernt:

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

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

Suchanfragen mithilfe von Labels filtern

Mit der Google Cloud Console, der gcloud CLI oder der Compute Engine API können Sie Ihre Ressourcen suchen und Ergebnisse nach Labels filtern. Verwenden Sie die gcloud CLI oder die Compute Engine API, um Weiterleitungsregeln nach Labels zu filtern.

Console

  1. Rufen Sie die Ressourcenseite auf, für die Sie eine gefilterte Liste von Ressourcen abrufen möchten.

    • VM-Instanzen finden Sie unter VM-Instanzen.
    • Informationen zu Snapshots finden Sie unter Snapshots.
    • Rufen Sie für Images Images auf.
    • Informationen zu Laufwerken finden Sie unter Laufwerke.
    • Informationen zu statischen externen IP-Adressen finden Sie unter Externe IP-Adressen.
    • Informationen zu VPN-Tunneln finden Sie unter VPN.
  2. Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter.

  3. Geben Sie in der Suchleiste Ihren Schlüssel, Wert oder Ihr Schlüssel/Wert-Paar ein. Die Ergebnisse enthalten auch teilweise Übereinstimmungen.

    Wenn Sie beispielsweise nur Ressourcen mit dem Label env:dev anzeigen lassen möchten, können Sie eine der folgenden Optionen eingeben:

    • Schlüssel eingeben: env
    • Geben Sie den Wert ein: dev
    • Geben Sie das Schlüssel/Wert-Paar ein: env:dev

gcloud

Um nach Labels zu filtern, verwenden Sie den Unterbefehl list der folgenden Ressourcen mit dem Flag --filter:

Der Wert des Flags --filter muss im Format labels.KEY=VALUE angegeben werden. Wenn Sie beispielsweise nach einem Label mit env als Schlüssel und dev als Wert filtern möchten, können Sie folgenden Befehl ausführen:

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

Weitere Informationen zur Filtersyntax in der gcloud CLI finden Sie in der gcloud topic filters-Dokumentation .

API

Stellen Sie zum Filtern von Ressourcen eine GET-Anfrage an die Methode list der folgenden Ressourcen und fügen Sie das Filterfeld hinzu:

Um beispielsweise alle VMs im Projekt myproject und Zone us-central1-a mit einem Label aufzulisten, das ein Schlüssel/Wert-Paar von env:dev hat, legen das Filterfeld auf labels.env:dev in Ihrer list-Anfrage fest. Wenn Sie das Filterfeld als Abfragestringparameter hinzufügen, verwenden Sie einen URL-codierten Parameterwert, filter=labels.env%3Adev:

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?filter=labels.env%3Adev

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

Beziehung zwischen VM-Labels und Netzwerk-Tags

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

Jetzt sind Labels und Tags getrennt. Wenn Sie ein Label auf einer VM erstellen, wird von Compute Engine kein Tag für die VM erstellt. Wenn Sie ein Tag auf einer VM erstellen müssen, müssen Sie das Tag manuell erstellen.

Weitere Informationen zum Erstellen von Tags finden Sie unter Netzwerk-Tags.

Nächste Schritte