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
Ve a la página de instancias de Cloud SQL en la consola de Google Cloud Platform.
Selecciona las casillas junto a los recursos que quieres etiquetar.
Haz clic en Mostrar panel de información en la esquina superior derecha para expandir la columna de etiquetas.
Actualiza o agrega nuevas etiquetas según lo desees.
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
Ve a la página de instancias de Cloud SQL en la consola de Google Cloud Platform.
Selecciona las casillas de junto a los recursos para los que deseas eliminar las etiquetas.
- Haz clic en Mostrar panel de información para expandir la columna de etiquetas.
- Haz clic en la
X
junto a todas las etiquetas que deseas eliminar. - 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
- Obtener información sobre cómo exportar datos de facturación a BigQuery.
- Obtener información sobre cómo filtrar con la herramienta gcloud.