Instanzen mit Labels versehen

Auf dieser Seite erhalten Sie Informationen zu Labels. Es wird beschrieben, wie Sie eine Instanz mit Labels erstellen. Außerdem erfahren Sie, wie Labels hinzugefügt, aktualisiert, entfernt und in Suchanfragen verwendet werden.

Mit Labels können Sie verwandte oder miteinander verknüpfte Instanzen auf einfache Weise gruppieren. Sie können beispielsweise für Test- oder Produktionszwecke verwendete Instanzen entsprechend beschriften oder Ihren eigenen Abrechnungscode zu einer Instanz hinzuzufügen. Anhand der Labels können Sie Instanzen suchen oder die Kosten für Instanzen überwachen.

Labels werden immer als Schlüssel/Wert-Paare hinzugefügt:

{
 "userLabels": {
    "track": "production",
    "location": "western-division"
    "billing-code": "34802",...
 }

Die Änderung von Labels wirkt sich nicht auf die Leistung der Cloud SQL-Instanz aus.

Weitere Informationen finden Sie unter Was sind Labels? und Anforderungen an Labels.

Beschränkungen

  • Sie können jeder Instanz bis zu 64 Labels zuweisen.
  • Labelschlüssel und -werte unterliegen den folgenden Beschränkungen:

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

Instanzen mit Labels erstellen

Wenn Sie mit dem gcloud-Befehlszeilentool oder der API eine neue Instanz erstellen, können Sie Labels auf die Instanz anwenden.

gcloud

Geben Sie beim Erstellen der Instanz das Flag --labels gefolgt von einer durch Kommas getrennten Liste mit Schlüssel/Wert-Paaren für Labels an. Damit Sie Labels einbeziehen können, müssen Sie die Betaversion des Befehls create verwenden.

Beispiel:

gcloud beta sql instances create ... --labels track=production,billing-code=34802

curl

Fügen Sie in der API während der Anfrage POST zum Hinzufügen einer neuen Instanz das Attribut userLabels in den Anfragetext ein, damit die Labels der neuen Instanz zugewiesen werden. Ihr Anfragetext zum Erstellen einer Instanz kann beispielsweise diese Labels enthalten:

  ....
  "settings": {"tier":"db-custom-2-7680",
               "userLabels": {"track": "production",
                              "location": "western-division",
                              "billing-code": "34802"},
  ....

Labels in vorhandener Instanz hinzufügen oder aktualisieren

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf die Kästchen neben den Ressourcen, die Sie mit Labels versehen möchten.

  3. Klicken Sie rechts oben auf Infofeld anzeigen, um die Spalte für Labels zu erweitern.

  4. Aktualisieren Sie Labels oder fügen Sie neue Labels hinzu.

  5. Speichern Sie die Änderungen.

gcloud

Mit dem Unterbefehl patch (Betaversion) können Sie Labels in einer vorhandenen Instanz aktualisieren oder hinzufügen:

gcloud beta sql instances patch [INSTANCE_NAME] --update-labels [KEY1]=[VALUE1]...

Beispiel:

gcloud beta sql instances patch my-instance --update-labels track=production,billing-code=34802

Aktualisieren Sie den Schlüssel mit dem neuen Labelwert mit einem bestehenden Labelschlüssel. Wenn Sie einen neuen Schlüssel angeben, fügt das Tool diesen Schlüssel der Labelliste hinzu. Dies wirkt sich nur auf die von Ihnen angegebenen Labels aus. Vorhandene Label, die nicht in dem Befehl angegeben sind, bleiben unverändert.

rest v1beta4

So verwenden Sie die Methode PATCH, um Labels hinzuzufügen oder zu aktualisieren:

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • label-name-1: ein Labelname
  • value-1: der Wert von label-name-1
  • label-name-2: ein Labelname
  • value-2: der Wert von label-name-2

HTTP-Methode und URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings" :
    {
        "userLabels" :
         {
            "label-name-1" : "value-1",
            "label-name-2" : "value-2"
         }
    }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Aktualisieren Sie den Schlüssel mit dem neuen Labelwert mit einem bestehenden Labelschlüssel. Wenn Sie einen neuen Schlüssel angeben, fügt das Tool diesen Schlüssel der Labelliste hinzu. Dies wirkt sich nur auf die von Ihnen angegebenen Labels aus. Vorhandene Labels, die nicht in der Anfrage angegeben sind, bleiben unverändert.

Label entfernen

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Wählen Sie die 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 gcloud-Befehlszeilentool den Unterbefehl patch (Betaversion) mit dem Flag --remove-labels aus:

gcloud beta sql instances patch [INSTANCE_NAME] --remove-labels [LABEL1],[LABEL2]

Wenn Sie einen nicht vorhandenen Labelnamen angeben, wird keine Fehlermeldung zurückgegeben.

rest v1beta4

Legen Sie den Wert auf null fest, um ein Label über die API zu entfernen:

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • label-name: der Labelname

HTTP-Methode und URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings" :
    {
        "userLabels" :
         {
            "label-name" : null,
         }
    }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Instanzsuche mit Labels filtern

Sie können die Instanzlistenergebnisse mit dem Tool gcloud oder über die API nach Labels filtern.

gcloud

Erstellen Sie in gcloud eine list-Anfrage und verwenden Sie das Flag --filter. Mit der Syntax labels.[KEY]:[VALUE] können Sie nach Labels filtern. Wenn Sie beispielsweise nach dem Label billing-code mit dem Wert 34802 filtern möchten, können Sie diesen Befehl ausführen:

gcloud beta sql instances list --filter='labels.billing-code:34802'

So filtern Sie unabhängig vom Wert nach einem vorhandenen Label:

gcloud beta sql instances list --filter='labels:billing-code'

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

curl

In der API stellen Sie eine Listenanfrage mit dem URL-codierten Abfrageparameter filter.

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.[KEY1_NAME]:[KEY1_VALUE]%20userLabels.[KEY2_NAME]:[KEY2_VALUE]

Beispiel:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.track:production%20userLabels.billing-code:34802

Wenn zwei Labelwerte mit einem (codierten) Leerzeichen dazwischen enthalten sind, müssen beide den Wert "true" haben, damit eine Instanz zurückgegeben wird. Es handelt sich hierbei um die Operation AND. Sie können die Operatoren AND, OR und NOT auch explizit angeben. Beispiel:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.track:production%20OR%20userLabels.billing-code:34802

Weitere Informationen