Configurar y obtener datos

En esta página se explica cómo definir, obtener y actualizar variables con RuntimeConfigurator. Las variables son pares clave-valor que pertenecen a un recurso RuntimeConfig. Cada par clave-valor contiene los datos que definas. Después de crear una variable, puedes definir un observador o un esperador en ella.

Para obtener más información sobre las variables y el servicio Runtime Configurator, consulta la documentación sobre los conceptos básicos de Runtime Configurator.

Para saber cómo crear un recurso RuntimeConfig, consulta Crear y eliminar recursos RuntimeConfig.

Antes de empezar

Crear una variable

Una variable es un par clave-valor. Una clave de variable puede ser plana o jerárquica. Por ejemplo, todas las siguientes son claves válidas:

  • status
  • users/jane-smith/favorite-color
  • users/total

Solo las claves de los nodos hoja pueden tener valores. En el ejemplo anterior, no puedes asignar un valor a lo siguiente:

  • users
  • users/jane-smith

Esto se debe a que ambas teclas contienen otras teclas debajo.

Para crear una variable, usa Deployment Manager, Google Cloud CLI o la API.

Deployment Manager

Para crear una variable en Deployment Manager, especifica el tipo de variable:

runtimeconfig.v1beta1.variable

En las propiedades de la variable, proporciona name, location y value de la variable:

- name: [NAME]
  type: runtimeconfig.v1beta1.variable
  properties:
    parent: $(ref.[CONFIG_NAME].name)
    variable: [VARIABLE_KEY]
    [value | text]: [VARIABLE_VALUE]

donde:

  • [NAME] es el nombre de recurso arbitrario de esta variable. No es el nombre de la variable en sí.
  • [CONFIG_NAME] es el recurso Config de esta solicitud.
  • [VARIABLE_KEY] es la clave de esta variable. Por ejemplo, status y users/jane-smith/favorite_color son claves válidas. Las claves de las variables pueden incluir /. Una clave de variable puede contener dígitos, letras, guiones y barras, y la longitud máxima de un nombre es de 256 caracteres.
  • [VARIABLE_VALUE] es el valor de esta variable. En función de si quieres asignar un valor como texto sin formato o como una cadena codificada en Base64, elige la propiedad value o text:
    • value: si proporcionas un valor como una cadena codificada en base64, usa la propiedad value.
    • text: si proporcionas una cadena de texto sin formato, usa la propiedad text. La cadena debe ser UTF-8 válida.

gcloud

Para crear una variable con la CLI de Google Cloud, usa el comando runtime-config configs variables set:

gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
    [VARIABLE_VALUE] --config-name [CONFIG_NAME] [--is-text]

donde:

  • [VARIABLE_KEY] es la clave de la variable. Por ejemplo, status y users/jane-smith/favorite_color son claves válidas. Las claves de las variables pueden incluir /. Una clave de variable puede contener dígitos, letras, guiones y barras. La longitud máxima de un nombre es de 256 caracteres.
  • [VARIABLE_VALUE] es el valor de esta variable. Puede asignar un valor como texto sin formato o como una cadena codificada en base64. Si especifica un valor de texto sin formato, proporcione la marca --is-text. De lo contrario, Google Cloud CLI codificará el valor en base64.

    gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
          [VARIABLE_VALUE] --config-name [CONFIG_NAME] --is-text
    

    También puedes proporcionar el valor de la variable desde un archivo. Por ejemplo:

    cat [FILE_NAME] | gcloud beta runtime-config configs variables set [VARIABLE_KEY] --config-name [CONFIG_NAME]
    

    Nota: No es necesario que codifiques este valor porque gcloud lo hará por ti.

  • [CONFIG_NAME] es el nombre del recurso RuntimeConfig en el que se debe crear esta variable. Por ejemplo, frontend-config.

    Por ejemplo:

    gcloud beta runtime-config configs variables set example-variable \
          my-test-value --config-name example-config
    

    La CLI de gcloud devuelve una respuesta como la siguiente:

Created [https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]].

De forma predeterminada, las variables que ya existan se sobrescribirán de forma silenciosa. Si quieres conservar una variable que ya existe, incluye la marca --fail-if-present, que crea la variable si no existe.

Del mismo modo, también puedes rechazar la solicitud de la variable si no está presente proporcionando la marca --fail-if-absent.

Para consultar la referencia completa de este comando gcloud, lee la documentación de referencia de runtime-config variables set.

API

En la API REST, haz una solicitud POST al siguiente URI para crear una variable:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables

donde [PROJECT_ID] es el ID del proyecto de esta solicitud. La carga útil de la solicitud contiene el URI del recurso RuntimeConfig y el valor de texto sin formato de la clave o el valor codificado en Base64:

{
   "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]"
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

donde:

  • [PROJECT_ID] es el ID del proyecto de esta solicitud.
  • [CONFIG_NAME] es el nombre de esta configuración.
  • [VARIABLE_KEY] es la clave de la variable. Por ejemplo, status y users/jane-smith/favorite_color. Las claves de las variables pueden incluir /. Una clave de variable puede contener dígitos, letras, guiones y barras, y la longitud máxima de un nombre es de 256 caracteres.
  • [VARIABLE_VALUE] es el valor de esta variable. En función de si quieres asignar un valor como texto sin formato o como una cadena codificada en base64, elige la propiedad value o text:

    • value: si proporcionas un valor como una cadena codificada en base64, usa la propiedad value.
    • text: si proporcionas una cadena de texto sin formato, usa la propiedad text. La cadena debe ser UTF-8 válida.

    Si la acción se realiza correctamente, la API devuelve una respuesta como la siguiente:

    {
    "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
    "value": "dGVhbA==",
    "updateTime": "2016-04-11T21:49:00.773366134Z"
    }

    Para obtener más información sobre este método, consulta la documentación de variables().create.

Actualizar una variable

Deployment Manager

Para actualizar una variable en Deployment Manager, sigue estos pasos:

  1. Define o actualiza las propiedades de la variable tal como se describe en el artículo Crear una variable.

  2. Sigue los pasos para enviar la solicitud de actualización.

gcloud

Para actualizar una variable, sigue el mismo proceso que para crear una variable.

API

En la API REST, haz una solicitud PUT al siguiente URI para actualizar una variable:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

donde:

  • [PROJECT_ID] es el ID del proyecto de esta solicitud.
  • [CONFIG_NAME] es el nombre de esta configuración.
  • [VARIABLE_VALUE] es el valor de esta variable. Se trata de una cadena que se ha codificado en base64.

La carga útil de la solicitud debe ser la siguiente:

{
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

donde [VARIABLE_VALUE] es el valor de esta variable. En función de si quieres asignar un valor como texto sin formato o como una cadena codificada en base64, elige la propiedad value o text:

  • value: Si proporciona un valor como cadena codificada en base64, utilice la propiedad value.
  • text: si proporcionas una cadena de texto sin formato, usa la propiedad text. La cadena debe ser UTF-8 válida.

Si la acción se realiza correctamente, la API devuelve una respuesta como la siguiente:

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "dGVhbA==",
  "updateTime": "2016-04-11T21:46:11.591713370Z",
  "state": "UPDATED"
}

Para obtener más información sobre este método, consulta la documentación de variables().create.

Obtener el valor de una variable

Deployment Manager

Obtén el valor de una variable con uno de los siguientes métodos:

gcloud

Para crear una variable con la CLI de Google Cloud, usa el comando runtime-config configs variables get-value:

gcloud beta runtime-config configs variables get-value [VARIABLE_KEY] --config-name [CONFIG_NAME]

donde:

  • [VARIABLE_KEY] es la clave de la variable. Por ejemplo, status, users/jane-smith/favorite_color.
  • [CONFIG_NAME] es el nombre del recurso RuntimeConfig de esta variable. Por ejemplo, website.

    La CLI de gcloud devuelve una respuesta como la siguiente:

    example-value

También puedes obtener una lista de las variables para las que tienes permiso runtimeconfig.variables.get y sus valores mediante el comando list y la marca --values. Por ejemplo:

gcloud beta runtime-config configs variables list --config-name example-config --values

La CLI de gcloud devuelve una lista como esta:

NAME                         UPDATE_TIME                     VALUE
not-my-favorite-color/shade  2016-04-18T21:14:59.932428461Z  orange
not-my-favorite-food/group   2016-04-18T21:14:59.932428461Z  vegetables

Se omitirán las variables para las que no tengas permiso get. Esto incluye las variables en las que tienes permiso de list, pero no de get.

Para consultar la referencia completa de este comando gcloud, lee la documentación de referencia de runtime-config variables.

API

En la API REST, haz una solicitud GET al siguiente URI para obtener el valor de una variable:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

donde:

  • [PROJECT_ID] es el ID del proyecto de esta solicitud.
  • [CONFIG_NAME] es el nombre de esta configuración.
  • [VARIABLE_KEY] es el nombre de esta solicitud.

Si se realiza correctamente, la API devuelve una respuesta con el valor codificado en base64 de la variable:

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "[VARIABLE_VALUE]",
  "updateTime": "2016-04-11T21:49:00.773366134Z"
}

Debes decodificar el valor tú mismo para obtener la cadena. Para obtener más información sobre este método, consulta la documentación de variables().get.

Si quieres obtener una lista de las variables para las que tienes permiso runtimeconfig.variables.get y sus valores, usa el método returnValues. Por ejemplo:

GET uri: https://runtimeconfig.googleapis.com/v1beta1/projects/myproject/configs/example-config/variables?returnValues=True

La API devuelve todas las variables para las que tienes permiso:

{
  "variables": [
    {
      "name": "projects/compute-writers-project/configs/example-config/variables/not-my-favorite-color/shade",
      "updateTime": "2016-04-18T21:14:59.932428461Z",
      "value": "b3Jhbmdl"
    }
  ]
}

Del mismo modo, debes decodificar el valor para obtener la cadena.

Para obtener más información sobre este método, consulta la documentación de variables().list.

Siguientes pasos