Organizar los recursos con etiquetas


Las etiquetas son pares clave-valor que se pueden usar en Google Cloud para agrupar recursos relacionados o asociados. Por ejemplo, en Compute Engine, puedes usar etiquetas para agrupar las VM en categorías como producción, etapa de pruebas o desarrollo, de modo que puedas buscar recursos que pertenezcan a cada etapa de desarrollo.

Después de agregar las etiquetas a los recursos, puedes aprovechar la función de filtrado anidado para realizar búsquedas más precisas de los recursos mediante etiquetas.

Antes de comenzar

  • Lee la documentación sobre discos persistentes.
  • Consulta Imágenes.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

¿Qué son las etiquetas?

Una etiqueta es un par clave-valor que puedes asignar a las instancias de Google Cloud. Te ayudan a organizar estos recursos y administrar los costos a gran escala, con el nivel de detalle que necesitas. Puedes adjuntar una etiqueta a cada recurso y, luego, usarlas para filtrarlos. La información sobre las etiquetas se envía al sistema de facturación que te permite desglosar los cargos facturados por etiqueta. Con los informes de facturación integrados, puedes filtrar y agrupar costos por etiquetas de recurso. También puedes usar etiquetas para consultar las exportaciones de datos de facturación.

Requisitos para las etiquetas

Las etiquetas que se aplican a un recurso deben cumplir los siguientes requisitos:

  • Cada recurso puede tener hasta 64 etiquetas.
  • Cada etiqueta debe ser un par clave-valor.
  • La longitud de las claves debe ser de entre 1 y 63 caracteres, y no pueden estar vacías. Los valores pueden estar vacíos y su longitud máxima es de 63 caracteres.
  • Las claves y los valores pueden contener solo letras en minúscula, caracteres numéricos, guiones bajos y guiones. Todos los caracteres deben usar la codificación UTF-8, además, se permiten los caracteres internacionales. Las claves deben comenzar con una letra en minúscula o un carácter internacional.
  • La porción de clave de una etiqueta debe ser única para un solo recurso. Sin embargo, puedes usar la misma clave en varios recursos.

Estos límites se aplican a la clave y al valor de cada etiqueta de clúster, y a los recursos individuales de Google Cloud que tienen etiquetas de clúster. No hay límite para la cantidad de etiquetas de clúster que puedes aplicar en todos los recursos de un proyecto.

Usos comunes de las etiquetas

Estos son algunos casos prácticos comunes de las etiquetas:

  • Etiquetas de equipo o del centro de costos: Agrega etiquetas por equipo o centro de costos para distinguir las instancias que pertenecen a distintos equipos (por ejemplo, team:research y team:analytics). Puedes usar este tipo de etiquetas para la contabilidad de costos o la creación de presupuestos.

  • Etiquetas de componentes: por ejemplo, component:redis, component:frontend, component:ingest y component:dashboard.

  • Etiquetas de entorno o etapa: por ejemplo, environment:production y environment:test.

  • Etiquetas de estado: por ejemplo, state:active, state:readytodelete y state:archive.

  • Etiquetas de propiedad: Se usan para identificar a los equipos responsables de las operaciones, por ejemplo: team:shopping-cart.

  • Etiquetas de máquina virtual: se puede adjuntar una etiqueta a una máquina virtual. Las etiquetas de máquina virtual que definiste con anterioridad aparecerán como una etiqueta sin un valor.

No recomendamos crear grandes cantidades de etiquetas únicas, como marcas de tiempo o valores individuales para cada llamada a la API. El problema con este enfoque es que, cuando los valores cambian con frecuencia o con claves que sobrecargan el catálogo, esto dificulta el filtrado y la generación de informes eficaces para los recursos.

Etiquetas

Las etiquetas se pueden usar como anotaciones que se pueden consultar en los recursos, pero no se pueden usar para establecer condiciones en las políticas. Las etiquetas proporcionan una forma de permitir o rechazar políticas de manera condicional en función de si un recurso tiene una etiqueta específica, ya que proporciona un control detallado sobre las políticas. Para obtener más información, consulta la Descripción general de etiquetas.

Usa etiquetas en Compute Engine

Puedes aplicar etiquetas a los siguientes recursos de Compute Engine:

  • Instancias de máquina virtual (VM)
  • Imágenes
  • Discos persistentes
  • Instantáneas de discos persistentes

También puedes usar etiquetas en componentes relacionados de Google Cloud, como los que se muestran a continuación:

Por ejemplo, puedes agregar las siguientes etiquetas como pares clave-valor a tus recursos:

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

Crear recursos con etiquetas

Cuando creas un recurso nuevo, puedes aplicarle etiquetas.

Console

  1. Ve a la página de recursos que deseas crear.

  2. En Etiquetas, haz clic en Agregar etiqueta.

  3. Continúa con el proceso de creación.

gcloud

Para agregar una etiqueta, usa el subcomando create con la marca --labels. Puedes agregar etiquetas a los recursos de Compute Engine mediante los siguientes comandos gcloud:

Ejemplo

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

API

En la API, durante la solicitud POST para agregar un nuevo recurso, agrega la propiedad labels en el cuerpo de la solicitud a fin de aplicar etiquetas al recurso.

Por ejemplo, en el siguiente fragmento, se realiza una solicitud POST para crear una instancia de VM con las etiquetas webserver:backend y media:images:

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"
  }
}

Agrega o actualiza etiquetas en recursos existentes

Puedes agregar etiquetas o actualizar las existentes en los recursos mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine. Para agregar o actualizar etiquetas de reglas de reenvío, usa la CLI de gcloud o la API de Compute Engine.

Console

  1. Ve a la página del recurso al que deseas agregarle etiquetas.

  2. Selecciona las casillas de verificación que aparecen junto a los recursos que deseas etiquetar.

  3. Para expandir la columna de etiquetas, haz clic en Mostrar panel de información.

  4. En el panel, selecciona Etiquetas.

  5. Para agregar etiquetas, haz clic en Agregar etiqueta y agrega el par clave-valor.

  6. Para actualizar las etiquetas, selecciona las etiquetas existentes y modifica sus valores.

  7. Guarda los cambios.

gcloud

Para agregar o cambiar una etiqueta, usa el subcomando update con la marca --update-labels. Puedes actualizar las etiquetas de los recursos de Compute Engine mediante los siguientes comandos de gcloud:

Ejemplo

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

Si proporcionas una clave de etiqueta que ya existe, Google Cloud CLI actualiza la clave existente con el valor de etiqueta nuevo. Si proporcionas una clave nueva, la herramienta la agrega a la lista de etiquetas.

API

Si deseas agregar o actualizar etiquetas, realiza una solicitud POST al método setLabels del recurso con la huella digital más reciente y una lista completa de etiquetas para aplicar.

Al igual que con los metadatos y los rótulos identificadores, si el recurso tiene etiquetas existentes que deseas conservar, debes incluirlas en la solicitud junto con las etiquetas nuevas que desees agregar.

Por ejemplo, en el siguiente fragmento, se realiza una solicitud POST a una instancia de VM para establecer las etiquetas environment:test y an-existing-tag:yes:

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="
}

Ver etiquetas

Puedes ver las etiquetas de los recursos mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine. Para ver las etiquetas de las reglas de reenvío, usa la CLI de o la API de Compute Engine.

Console

  1. Ve a la página de recursos.

  2. Haz clic en el recurso para ver los detalles.

  3. Ubica las Etiquetas.

gcloud

Para ver las etiquetas, usa el subcomando describe. Puedes ver las etiquetas de los recursos de Compute Engine mediante los siguientes comandos gcloud:

Ejemplo

gcloud compute disks describe example-disk

El resultado contiene las siguientes etiquetas:

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

API

Para recuperar las etiquetas, realiza una solicitud GET al siguiente recurso:

Por ejemplo, el siguiente fragmento hace una solicitud GET para recuperar las etiquetas en una instancia de VM:

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto
  • ZONE: La zona de la VM
  • VM_NAME: El nombre de la VM

Obtén una huella digital de la etiqueta para solicitudes a la API

Cuando actualizas o agregas etiquetas en la API, debes proporcionar la huella digital más reciente de las etiquetas con tu solicitud para evitar conflictos con otras solicitudes. Solo se requiere una huella digital para las solicitudes a la API, la consola de Google Cloud y la herramienta de Google Cloud CLI no requieren una huella digital.

Para obtener la labelsFingerprint más reciente, realiza una solicitud GET a los siguientes recursos:

Por ejemplo, el siguiente fragmento obtiene un labelsFingerprint para una instancia de VM:

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

La respuesta contiene la propiedad 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="
}

Quita una etiqueta

Puedes quitar etiquetas de los recursos mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine. Para quitar etiquetas de las reglas de reenvío, usa la CLI de gcloud o la API de Compute Engine.

Console

  1. Ve a la página del recurso al que deseas agregarle etiquetas.

  2. Selecciona las casillas de verificación que aparecen junto a los recursos cuyas etiquetas deseas quitar.

  3. Para expandir la columna de etiquetas, haz clic en Mostrar panel de información.

  4. Para eliminar una etiqueta, haz clic en Borrar.

  5. Guarda los cambios.

gcloud

Para agregar o cambiar una etiqueta, usa el subcomando update con la marca --remove-labels. Puedes quitar las etiquetas para los recursos de Compute Engine mediante los siguientes comandos de gcloud:

Ejemplo

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

API

Para quitar las etiquetas, realiza una solicitud POST al método setLabels del siguiente recurso con la huella digital más reciente y una lista completa de las etiquetas que se tienen que aplicar:

Proporciona el labelsFingerprint actual y una lista de etiquetas vacía para quitar todas las etiquetas, o brinda una lista de las etiquetas que deseas conservar (omite las etiquetas que deseas quitar). Por ejemplo, el siguiente fragmento quita todas las etiquetas de la VM:

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

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

Filtra búsquedas con etiquetas

Puedes buscar tus recursos y filtrar resultados por etiquetas mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine. Para filtrar las reglas de reenvío por etiquetas, usa la CLI de gcloud o la API de Compute Engine.

Console

  1. Ve a la página del recurso para el que deseas obtener una lista filtrada de recursos.

  2. Si se te solicita, selecciona el proyecto y haz clic en Continuar.

  3. En la barra de búsqueda, ingresa tu clave, valor o par clave-valor. En tus resultados, se incluye cualquier coincidencia parcial.

    Por ejemplo, para mostrar solo recursos con la etiqueta env:dev, puedes ingresar cualquiera de los siguientes elementos:

    • Ingresa la clave: env
    • Ingresa el valor: dev
    • Ingresa el par clave-valor: env:dev

gcloud

Para filtrar según las etiquetas, usa el subcomando list de los siguientes recursos con la marca --filter:

El valor de la marca --filter debe tener el formato labels.KEY=VALUE. Por ejemplo, si deseas usar una etiqueta con env como clave y dev como valor para el filtrado, puedes ejecutar este comando:

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

Para obtener más información sobre la sintaxis de filtro en la CLI de gcloud, consulta la documentación de gcloud topic filters.

API

Para filtrar recursos, realiza una solicitud GET al método list de los siguientes recursos e incluye el campo de filtro:

Por ejemplo, para enumerar todas las VM en el proyecto myproject y la zonaus-central1-a con una etiqueta que tenga un par clave-valor de env:dev, establece el campo de filtro en labels.env:dev en tu solicitud de list. Si incluyes el campo de filtro como un parámetro de string de consulta, usa un valor de parámetro codificado en URL, filter=labels.env%3Adev:

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

Para obtener más información, lee la documentación de filter en la referencia de la API de Compute Engine.

Relación entre etiquetas de VM y rótulos identificadores de red

En el pasado, las etiquetas y los rótulos identificadores estaban relacionados. Por ejemplo, si agregabas una etiqueta webserver:test a una VM, Compute Engine le agregaba de forma automática un rótulo identificador webserver.

Ahora, las etiquetas y los rótulos identificadores son independientes. Si creas una etiqueta en una VM, Compute Engine no creará un rótulo identificador para esta. Si necesitas crear un rótulo identificador en una VM, debes crearlo de forma manual.

Para aprender a crear rótulos identificadores, consulta Rótulos identificadores de red.

¿Qué sigue?