Instancias de etiquetas,Instancias de etiquetas

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 :

resource "google_sql_database_instance" "postgres_instance_labels" {
  name             = "postgres-instance-labels"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
    user_labels = {
      track        = "production"
      billing-code = 34802
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

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

  1. Inicie Cloud Shell .
  2. 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 ).

  1. 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 denomina main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
  4. Guarde sus cambios.
  5. 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

  1. 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.

  2. 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!"

  3. 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:

  1. Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento deletion_protection en false .
    deletion_protection =  "false"
  2. Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando yes en el mensaje:
    terraform apply
  1. 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

  1. Vaya a la página Instancias de Cloud SQL en el Google Cloud consola.

    Vaya a la página Instancias de Cloud SQL

  2. Seleccione las casillas de verificación junto a los recursos que desea etiquetar.

  3. Haga clic en Mostrar panel de información en la esquina superior derecha para expandir la columna de etiquetas.

  4. Actualice o agregue nuevas etiquetas según lo desee.

  5. 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

  1. Vaya a la página Instancias de Cloud SQL en el Google Cloud consola.

    Vaya a la página Instancias de Cloud SQL

  2. Seleccione las casillas de verificación junto a los recursos para los cuales desea eliminar etiquetas.

  3. Haga clic en Mostrar panel de información para expandir la columna de etiquetas.

  4. Haga clic en la X junto a todas las etiquetas que desea eliminar.

  5. 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?