En esta página se explican las etiquetas. En él se describe cómo crear una instancia con etiquetas, cómo añadir, actualizar y quitar etiquetas, y cómo usar etiquetas en las búsquedas.
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",...
}
Modificar las etiquetas no afecta al rendimiento de la instancia de Cloud SQL.
Para obtener más información, consulta ¿Qué son las etiquetas? y Requisitos de las etiquetas.
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 en minúscula, caracteres numéricos, guiones bajos y guiones. Se permite utilizar 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
Cuando creas una instancia con la CLI de gcloud o la API, puedes aplicarle etiquetas.
gcloud
Cuando crees la instancia, incluye la marca `--labels`, seguida de una lista de pares clave-valor de etiquetas separados por comas. Para incluir etiquetas, debes usar la versión beta del comando create.
Por ejemplo:
gcloud beta sql instances create ... --labels track=production,billing-code=34802
Terraform
Cuando crees una instancia con una etiqueta, usa un recurso de Terraform:
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
curl
En la API, durante la solicitud `POST` para añadir una instancia, añada la propiedad `userLabels` al cuerpo de la solicitud para aplicar etiquetas a la nueva instancia. Por ejemplo, el cuerpo de la solicitud para crear una instancia tiene las siguientes etiquetas:
"settings": {"tier":"db-custom-2-7680", "userLabels": {"track": "production", "location": "western-division", "billing-code": "34802"},
Añadir o actualizar etiquetas en una instancia
consola
Ve a la página Instancias de Cloud SQL de la Google Cloud consola.
Selecciona las casillas junto a los recursos que quieres etiquetar.
En la esquina superior derecha, haz clic en Mostrar panel de información para desplegar la columna de etiquetas.
Actualiza o añade las etiquetas que quieras.
Guarda los cambios.
gcloud
Usa el subcomando patch
(versión beta) para actualizar o añadir etiquetas a 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 actualiza la clave 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.
REST v1
Para añadir o actualizar etiquetas, usa el método PATCH
:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- label-name-1: nombre de la etiqueta
- value-1: el valor de label-name-1
- label-name-2: nombre de la etiqueta
- value-2: el valor de label-name-2
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings" : { "userLabels" : { "label-name-1" : "value-1", "label-name-2" : "value-2" } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Si proporcionas una clave de etiqueta que ya existe, la herramienta actualiza la clave 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.
rest v1beta4
Para añadir o actualizar etiquetas, usa el método PATCH
:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- label-name-1: nombre de la etiqueta
- value-1: el valor de label-name-1
- label-name-2: nombre de la etiqueta
- value-2: el valor de label-name-2
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings" : { "userLabels" : { "label-name-1" : "value-1", "label-name-2" : "value-2" } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Si proporcionas una clave de etiqueta que ya existe, la herramienta actualiza la clave 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.
Quitar una etiqueta
consola
Ve a la página Instancias de Cloud SQL de la Google Cloud consola.
Seleccione las casillas situadas junto a los recursos de los que quiera quitar las etiquetas.
Haz clic en Mostrar panel de información para desplegar la columna de etiquetas.
Haz clic en la
X
junto a todas las etiquetas que deseas eliminar.Guarda los cambios.
gcloud
Con gcloud CLI, 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.
REST v1
Para quitar una etiqueta con la API, debes definir su valor como null
:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- label-name: nombre de la etiqueta
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings" : { "userLabels" : { "label-name" : null, } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
rest v1beta4
Para quitar una etiqueta con la API, debes definir su valor como null
:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- label-name: nombre de la etiqueta
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings" : { "userLabels" : { "label-name" : null, } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Filtrar búsquedas de instancias mediante etiquetas
Puedes filtrar los resultados de la lista de instancias por etiquetas con la CLI de gcloud o la API.
gcloud
En gcloud
, haz una solicitud list
y usa la marca --filter
.
Para filtrar por etiquetas, usa la sintaxis labels.[KEY]:[VALUE]
. Por ejemplo, si quieres filtrar por una etiqueta billing-code
con el valor 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 consultar la documentación completa sobre la sintaxis de los filtros en la CLI de gcloud, consulta la documentación de gcloud topic filters
.
curl
En la API, haz una solicitud de lista con un parámetro de consulta filter
codificado como URL:
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]
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
Si 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 puedes proporcionar explícitamente los 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
- Consulta información sobre cómo exportar datos de facturación a BigQuery.
- Consulta información sobre cómo filtrar con la herramienta de línea de comandos gcloud.