Etiquetar instancias

Las etiquetas son una forma ligera de agrupar instancias relacionadas o asociadas entre sí. Por ejemplo, puedes etiquetar tus instancias según si las utilizas como prueba o producción, o puedes agregar tu propio código de facturación a una instancia. Puedes usar las etiquetas para buscar instancias o para rastrear cobros de la instancia.

Las etiquetas siempre se agregan como pares clave/valor:

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

Restricciones

  • Puedes asignar hasta 64 etiquetas a cada instancia.
  • Las claves y valores de etiqueta deben cumplir con las siguientes restricciones:

    • Las claves y los valores no pueden tener más de 63 caracteres cada uno.
    • Las claves y los valores solo pueden contener letras minúsculas, caracteres numéricos, guiones bajos y guiones. Se permite el uso de caracteres internacionales.
    • Las claves de etiqueta deben comenzar con una letra minúscula.
    • Las claves de etiqueta no pueden estar vacías.

Crear instancias con etiquetas

Al crear una instancia nueva con el uso de la herramienta de línea de comandos gcloud o la API, se puede aplicar etiquetas a la instancia.

gcloud

Al crear la instancia, incluye la marca --labels, seguida de una lista de pares clave/valor de etiquetas, separadas por comas. Se debe usar la versión beta del comando create para incluir etiquetas.

Por ejemplo:

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

curl

En la API, durante la petición POST para agregar una nueva instancia, añade la propiedad userLabels en el cuerpo de la petición para aplicar etiquetas a la nueva instancia. Por ejemplo, el cuerpo de la petición para crear una instancia tiene las siguientes etiquetas:

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

Agregar o actualizar etiquetas en una instancia

Consola

  1. Ve a la página de instancias de Cloud SQL en la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona las casillas junto a los recursos que quieres etiquetar.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para expandir la columna de etiquetas.

  4. Actualiza o agrega nuevas etiquetas según lo desees.

  5. Guarda los cambios.

gcloud

Usa el subcomando patch (versión beta) para actualizar o agregar etiquetas en una instancia:

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

Por ejemplo:

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

Si proporcionas una clave de etiqueta que ya existe, la herramienta la actualiza con el nuevo valor de etiqueta. Si proporcionas una clave nueva, la herramienta agrega la clave nueva a la lista de etiquetas. Solo se verán afectadas las etiquetas que especifiques. Las que ya existan, pero no estén incluidas en la petición permanecen sin cambios.

curl

Para agregar o actualizar etiquetas, usa el método PATCH:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings" : {"userLabels" :
                              {"<LABEL1>" : "<VALUE1>", "<LABEL2>" : "<VALUE2>"}}}' \
    -X PATCH \
    https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

Si proporcionas una clave de etiqueta que ya existe, la herramienta la actualiza con el nuevo valor de etiqueta. Si proporcionas una clave nueva, la herramienta agrega la clave nueva a la lista de etiquetas. Solo se verán afectadas las etiquetas que especifiques. Las que ya existan, pero no estén incluidas en la petición permanecen sin cambios.

Eliminar una etiqueta

Consola

  1. Ve a la página de instancias de Cloud SQL en la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona las casillas de junto a los recursos para los que deseas eliminar las etiquetas.

  3. Haz clic en Mostrar panel de información para expandir la columna de etiquetas.
  4. Haz clic en la X junto a todas las etiquetas que deseas eliminar.
  5. Guarda los cambios.

gcloud

Con la herramienta de línea de comandos gcloud, ejecuta el subcomando patch (versión beta) con la marca --remove-labels:

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

Si proporcionas un nombre de etiqueta que no existe, no se devuelve ningún error.

curl

Puedes quitar una etiqueta con la API al establecer su valor en null:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"userLabels": {"[LABEL_NAME]": null}}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/[INSTANCE_NAME]

Filtrar búsquedas de instancias usando etiquetas

Puedes filtrar los resultados de la lista de instancias por etiquetas con la herramienta gcloud o la API.

gcloud

En gcloud, realiza una petición list y usa la marca --filter. Si quieres filtrar en las etiquetas, usa la sintaxis labels.[KEY]:[VALUE]. Por ejemplo, si quieres filtrar en una etiqueta billing-code con un valor de 34802, puedes ejecutar este comando:

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

Si quieres filtrar si existe una etiqueta, independientemente de su valor:

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

Para obtener documentación completa sobre la sintaxis del filtro en la herramienta gcloud, consulta la documentación de gcloud topic filters.

curl

En la API, realiza una petición de lista con un parámetro de consulta de filter codificado por URL:

ACCESS_TOKEN="$(gcloud auth application-default 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]

Por ejemplo:

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

Cuando se incluyen dos valores de etiqueta con un espacio (codificado) entre ellos, ambos deben ser verdaderos para que se devuelva una instancia (una operación AND). También se puede proporcionar explícitamente operadores AND, OR y NOT. Por ejemplo:

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

Siguientes pasos