En esta página, se explican las etiquetas. Se describe cómo crear una instancia con etiquetas, cómo agregar, actualizar y quitar etiquetas, y cómo usarlas en las búsquedas.
Las etiquetas son una forma rápida de agrupar instancias relacionadas o asociadas entre sí. Por ejemplo, puedes etiquetar tus instancias según se usen 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 realizar un seguimiento de los cargos de instancia.
Las etiquetas siempre se agregan en pares clave-valor:
{
"userLabels": {
"track": "production",
"location": "western-division"
"billing-code": "34802",...
}
La modificación de etiquetas no tiene ningún impacto en el rendimiento de las instancias de Cloud SQL.
Para obtener más información, consulta las páginas ¿Qué son las etiquetas? y Requisitos para 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, números, guiones y guiones bajos. Se permite el uso de caracteres internacionales.
- Las claves de etiquetas deben comenzar con una letra en minúscula.
- Las claves de etiquetas no pueden estar vacías.
Crea instancias con etiquetas
Cuando creas una instancia nueva con la CLI de gcloud o la API, puedes aplicar etiquetas a la instancia.
gcloud
Cuando creas tu instancia, incluye la marca --labels, seguida de una lista separada por comas de los pares clave-valor de las etiquetas. Debes usar la versión Beta del comando create para incluir las etiquetas.
Por ejemplo:
gcloud beta sql instances create ... --labels track=production,billing-code=34802
Terraform
Cuando crees una instancia con una etiqueta, usa un recurso Terraform:
Aplique los cambios
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform mediante la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
curl
En la API, durante la solicitud POST para agregar una instancia nueva, agrega la propiedad userLabels en el cuerpo de la solicitud a fin de aplicar etiquetas a esa instancia nueva. Por ejemplo, tu cuerpo de solicitud para crear una instancia tiene las siguientes etiquetas:
"settings": {"tier":"db-custom-2-7680", "userLabels": {"track": "production", "location": "western-division", "billing-code": "34802"},
Agrega o actualiza las etiquetas en una instancia existente
Console
Ve a la página Instancias de Cloud SQL en la consola de Google Cloud.
Selecciona las casillas de verificación que aparecen junto a los recursos que deseas etiquetar.
Haz clic en Mostrar panel de información en la esquina superior derecha para expandir la columna de etiquetas.
Actualiza o agrega etiquetas nuevas como desees.
Guarda los cambios.
gcloud
Usa el subcomando patch
(versión Beta) para actualizar o agregar etiquetas en una instancia existente:
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 existente con el valor de etiqueta nuevo. Si proporcionas una clave nueva, la herramienta la agrega a la lista de etiquetas. Solo están afectadas las claves que específicas. Las etiquetas existentes que no están incluidas en el comando permanecen sin cambios.
rest v1
Para agregar o actualizar etiquetas, usa el método PATCH
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- label-name-1: Un nombre de etiqueta
- value-1: El valor de label-name-1
- label-name-2: Un nombre de 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 existente con el valor de etiqueta nuevo. Si proporcionas una clave nueva, la herramienta la agrega a la lista de etiquetas. Solo están afectadas las claves que específicas. Las etiquetas existentes que no están incluidas en la solicitud permanecen sin cambios.
rest v1beta4
Para agregar o actualizar etiquetas, usa el método PATCH
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- label-name-1: Un nombre de etiqueta
- value-1: El valor de label-name-1
- label-name-2: Un nombre de 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 existente con el valor de etiqueta nuevo. Si proporcionas una clave nueva, la herramienta la agrega a la lista de etiquetas. Solo están afectadas las claves que específicas. Las etiquetas existentes que no están incluidas en la solicitud permanecen sin cambios.
Quita una etiqueta
Console
Ve a la página Instancias de Cloud SQL en la consola de Google Cloud.
Selecciona las casillas de verificación que aparecen junto a los recursos cuyas etiquetas deseas quitar.
Haz clic en Mostrar panel de información para expandir la columna de etiquetas.
Haz clic en la
X
que aparece junto a las etiquetas que deseas quitar.Guarda los cambios.
gcloud
Con la CLI de 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 muestra ningún error.
rest v1
Puedes quitar una etiqueta con la API si configuras su valor como null
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- label-name: El 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Puedes quitar una etiqueta con la API si configuras su valor como null
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- label-name: El 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }
Filtra búsquedas de instancias mediante etiquetas
Puedes filtrar tus resultados de la lista de instancias con la CLI de gcloud o con la API.
gcloud
En gcloud
, haz una solicitud list
y usa la marca --filter
.
Para filtrar las etiquetas, usa la sintaxis labels.[KEY]:[VALUE]
. Por ejemplo, si deseas 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 deseas filtrar para saber si una etiqueta existe, sin importar su valor, ejecuta este comando:
gcloud beta sql instances list --filter='labels:billing-code'
Para obtener la documentación completa sobre la sintaxis de 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 en 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
Cuando dos valores de etiqueta están incluidos con un espacio (codificado) entre sí, ambos deben ser verdaderos para que se muestre una instancia (una operación AND
).
También puedes proporcionar de manera explícita 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
Pasos siguientes
- Obtén más información sobre cómo exportar datos de facturación a BigQuery.
- Obtén más información sobre cómo filtrar mediante la herramienta de gcloud.