Esta página explica las etiquetas. Describe cómo crear una instancia con etiquetas, cómo agregarlas, actualizarlas y eliminarlas, y cómo usarlas en las búsquedas.
Las etiquetas son una forma sencilla de agrupar instancias relacionadas o asociadas entre sí. Por ejemplo, puede etiquetar sus instancias según si las usa para pruebas o producción, o agregar su propio código de facturación. Puede usar las etiquetas para buscar instancias o para realizar un seguimiento de sus cargos.
Siempre agrega etiquetas como 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 la instancia de Cloud SQL.
Para obtener más información, consulte ¿Qué son las etiquetas? y Requisitos para las etiquetas .
Restricciones
- Puede asignar hasta 64 etiquetas a cada instancia.
Las claves y valores de las etiquetas deben cumplir 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 permiten 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 nueva instancia utilizando la CLI o la API de gcloud , puede aplicar etiquetas a la instancia.
nube g
Al crear la instancia, incluya el indicador `--labels`, seguido de una lista de pares clave-valor de etiquetas separados por comas. 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
Terraformar
Al crear una instancia con una etiqueta, utilice un recurso de Terraform :
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus 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 establece 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 , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
rizo
En la API, durante la solicitud `POST` para agregar una nueva instancia, agregue la propiedad `userLabels` en el 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"},
Agregar o actualizar etiquetas en una instancia existente
consola
Vaya a la página Instancias de Cloud SQL en el Google Cloud consola.
Seleccione las casillas de verificación junto a los recursos que desea etiquetar.
Haga clic en Mostrar panel de información en la esquina superior derecha para expandir la columna de etiquetas.
Actualice o agregue nuevas etiquetas según lo desee.
Guarde sus cambios.
nube g
Utilice 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 proporciona una clave de etiqueta ya existente, la herramienta la actualiza con el nuevo valor de etiqueta. Si proporciona una clave nueva, la herramienta la añade a la lista de etiquetas. Solo las etiquetas que especifique se verán afectadas; las etiquetas existentes no incluidas en el comando permanecerán sin cambios.
resto v1
Para agregar o actualizar etiquetas, utilice el método PATCH
:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 etiqueta-nombre-1
- label-name-2 : Un nombre de etiqueta
- value-2 : El valor de etiqueta-nombre-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 su solicitud, expanda una de estas opciones:
Debería 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": "[email protected]", "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 proporciona una clave de etiqueta ya existente, la herramienta la actualiza con el nuevo valor de etiqueta. Si proporciona una clave nueva, la herramienta la añade a la lista de etiquetas. Solo las etiquetas que especifique se verán afectadas; las etiquetas existentes no incluidas en la solicitud permanecerán sin cambios.
resto v1beta4
Para agregar o actualizar etiquetas, utilice el método PATCH
:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 etiqueta-nombre-1
- label-name-2 : Un nombre de etiqueta
- value-2 : El valor de etiqueta-nombre-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 su solicitud, expanda una de estas opciones:
Debería 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": "[email protected]", "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 proporciona una clave de etiqueta ya existente, la herramienta la actualiza con el nuevo valor de etiqueta. Si proporciona una clave nueva, la herramienta la añade a la lista de etiquetas. Solo las etiquetas que especifique se verán afectadas; las etiquetas existentes no incluidas en la solicitud permanecerán sin cambios.
Quitar una etiqueta
consola
Vaya a la página Instancias de Cloud SQL en el Google Cloud consola.
Seleccione las casillas de verificación junto a los recursos para los cuales desea eliminar etiquetas.
Haga clic en Mostrar panel de información para expandir la columna de etiquetas.
Haga clic en la
X
junto a todas las etiquetas que desea eliminar.Guarde sus cambios.
nube g
Usando la CLI de gcloud , ejecute el subcomando patch
(versión beta) con el indicador --remove-labels
:
gcloud beta sql instances patch [INSTANCE_NAME] --remove-labels [LABEL1],[LABEL2]
Si proporciona un nombre de etiqueta que no existe, no se devolverá ningún error.
resto v1
Para eliminar una etiqueta mediante la API, configure su valor como null
:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 su solicitud, expanda una de estas opciones:
Debería 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": "[email protected]", "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" }
resto v1beta4
Para eliminar una etiqueta mediante la API, configure su valor como null
:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 su solicitud, expanda una de estas opciones:
Debería 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": "[email protected]", "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
Puede filtrar los resultados de su lista de instancias por etiquetas usando la CLI o la API de gcloud.
nube g
En gcloud
, realice una solicitud list
y use el parámetro --filter
. Para filtrar por etiquetas, use la sintaxis labels.[KEY]:[VALUE]
. Por ejemplo, si desea filtrar por una etiqueta billing-code
con el valor 34802
, puede ejecutar este comando:
gcloud beta sql instances list --filter='labels.billing-code:34802'
Si desea filtrar según 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 de filtro en la CLI de gcloud, consulte la documentación gcloud topic filters
.
rizo
En la API, realice 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 se incluyen dos valores de etiqueta con un espacio (codificado) entre ellos, ambos deben ser verdaderos para que se devuelva una instancia (operación AND
). También se pueden 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
¿Qué sigue?
- Obtenga información sobre cómo exportar datos de facturación a BigQuery .
- Obtenga información sobre el filtrado mediante la herramienta gcloud .