Configurer et obtenir des données

Cette page vous explique comment définir, obtenir et mettre à jour des variables à l'aide de Runtime Configurator. Les variables sont des paires valeur/clé appartenant à une ressource RuntimeConfig. Chaque paire valeur/clé contient des données que vous définissez. Après avoir créé une variable, vous pouvez définir un service Watcher ou Waiter sur celle-ci.

Pour en savoir plus sur les variables et le service Runtime Configurator, consultez la documentation relative aux principes de base de Runtime Configurator.

Pour découvrir comment créer une ressource RuntimeConfig, consultez la section Créer et supprimer des ressources RuntimeConfig.

Avant de commencer

Créer une variable

Une variable est une paire valeur/clé. Une clé de variable peut être plate ou hiérarchique. Par exemple, tous les éléments suivants constituent des clés valides :

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

Seules les clés de nœuds feuilles peuvent posséder des valeurs. Dans l'exemple ci-dessus, vous ne pouvez pas affecter une valeur à :

  • users
  • users/jane-smith

Ceci est dû au fait que ces deux clés contiennent d'autres clés au niveau inférieur.

Pour créer une variable, utilisez Deployment Manager, Google Cloud CLI ou l'API.

Deployment Manager

Pour créer une variable dans Deployment Manager, spécifiez son type :

runtimeconfig.v1beta1.variable

Dans les propriétés de la variable, indiquez les valeurs name, location et value :

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

où :

  • [NAME] est le nom de ressource arbitraire pour cette variable. Il ne s'agit pas du nom de la variable elle-même.
  • [CONFIG_NAME] est la ressource Configuration pour cette requête.
  • [VARIABLE_KEY] est la clé de cette variable. Par exemple, status et users/jane-smith/favorite_color constituent des clés valides. Les clés de variable peuvent contenir le caractère /. Une clé de variable peut contenir des chiffres, des lettres, des tirets et des barres obliques. La longueur maximale d'un nom est de 256 caractères.
  • [VARIABLE_VALUE] est la valeur de cette variable. En fonction du format de valeur que vous souhaitez utiliser (texte brut ou chaîne encodée en base64), choisissez la propriété value ou text :
    • value : si vous indiquez une valeur en tant que chaîne encodée en base64, utilisez la propriété value.
    • text : si vous indiquez une chaîne en texte brut, utilisez la propriété text. Il doit s'agir d'une chaîne UTF-8 valide.

gcloud

Pour créer une variable avec Google Cloud CLI, exécutez la commande runtime-config configs variables set:

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

où :

  • [VARIABLE_KEY] est la clé de la variable. Par exemple, status et users/jane-smith/favorite_color constituent des clés valides. Les clés de variable peuvent contenir le caractère /. Une clé de variable peut contenir des chiffres, des lettres, des tirets et des barres obliques. La longueur maximale d'un nom est de 256 caractères.
  • [VARIABLE_VALUE] est la valeur de cette variable. Vous pouvez assigner une valeur en tant que texte brut ou en tant que chaîne encodée en base64. Si vous spécifiez une valeur en texte brut, spécifiez l'option --is-text. Sinon, la Google Cloud CLI encodera la valeur en base64.

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

    Vous pouvez également fournir la valeur de la variable à partir d'un fichier. Exemple :

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

    Remarque : Vous n'avez pas besoin d'encoder cette valeur, car gcloud effectue l'opération automatiquement.

  • [CONFIG_NAME] est le nom de la ressource RuntimeConfig dans laquelle cette variable doit être créée. Par exemple, frontend-config.

    Exemple :

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

    La gcloud CLI renvoie une réponse semblable à celle-ci:

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

Par défaut, toutes les variables existantes sont discrètement écrasées. Si vous souhaitez conserver une variable existante, incluez l'indicateur --fail-if-present, qui crée la variable si elle n'existe pas.

De même, vous pouvez également faire échouer la requête lorsque la variable est absente en fournissant l'indicateur --fail-if-absent.

Pour en savoir plus sur cette commande gcloud, consultez la documentation de référence sur runtime-config variables set.

API

Dans l'API REST, envoyez une requête POST à l'URI suivant pour créer une variable :

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

[PROJECT_ID] est l'ID de projet pour cette requête. La charge utile de la requête contient l'URI de la ressource RuntimeConfig et soit la valeur en texte brut de la clé, soit la valeur encodée en base64:

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

où :

  • [PROJECT_ID] est l'ID de projet de cette requête.
  • [CONFIG_NAME] est le nom de la configuration.
  • [VARIABLE_KEY] est la clé de la variable. Par exemple, status et users/jane-smith/favorite_color. Les clés de variable peuvent contenir le caractère /. Une clé de variable peut contenir des chiffres, des lettres, des tirets et des barres obliques. La longueur maximale d'un nom est de 256 caractères.
  • [VARIABLE_VALUE] est la valeur de cette variable. En fonction du format de valeur que vous souhaitez utiliser (texte brut ou chaîne encodée en base64), choisissez la propriété value ou text :

    • value : si vous indiquez une valeur en tant que chaîne encodée en base64, utilisez la propriété value.
    • text : si vous indiquez une chaîne en texte brut, utilisez la propriété text. Il doit s'agir d'une chaîne UTF-8 valide.

    Si l'opération réussit, l'API renvoie une réponse telle que :

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

    Pour en savoir plus sur la méthode, consultez la documentation sur variables().create.

Mettre à jour une variable

Deployment Manager

Pour mettre à jour une variable dans Deployment Manager :

  1. Définissez ou mettez à jour vos propriétés de variable, comme décrit dans la section Créer une variable.

  2. Suivez les étapes pour lancer la requête de mise à jour.

gcloud

Pour mettre à jour une variable, suivez le même processus que pour créer une variable.

API

Dans l'API REST, envoyez une requête PUT à l'URI suivant pour mettre à jour une variable :

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

où :

  • [PROJECT_ID] est l'ID de projet de cette requête.
  • [CONFIG_NAME] est le nom de la configuration.
  • [VARIABLE_VALUE] est la valeur de cette variable. Il s'agit d'une chaîne qui a été encodée en base64.

La charge utile de la requête doit être :

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

[VARIABLE_VALUE] est la valeur de cette variable. En fonction du format de valeur que vous souhaitez utiliser (texte brut ou chaîne encodée en base64), choisissez la propriété value ou text :

  • value : si vous indiquez une valeur en tant que chaîne encodée en base64, utilisez la propriété value.
  • text : si vous indiquez une chaîne en texte brut, utilisez la propriété text. Il doit s'agir d'une chaîne UTF-8 valide.

Si l'opération réussit, l'API renvoie une réponse telle que :

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

Pour en savoir plus sur la méthode, consultez la documentation sur variables().create.

Obtenir la valeur d'une variable

Deployment Manager

Vous pouvez obtenir la valeur d'une variable à l'aide de l'une des méthodes suivantes :

gcloud

Pour créer une variable avec Google Cloud CLI, exécutez la commande runtime-config configs variables get-value:

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

où :

  • [VARIABLE_KEY] est la clé de la variable. Par exemple, status, users/jane-smith/favorite_color.
  • [CONFIG_NAME] est le nom de la ressource RuntimeConfig pour cette variable. Par exemple, website.

    La gcloud CLI renvoie une réponse semblable à celle-ci:

    example-value

Vous pouvez également obtenir la liste des variables pour lesquelles vous disposez de l'autorisation runtimeconfig.variables.get ainsi que leurs valeurs en utilisant la commande list et en fournissant l'indicateur --values. Exemple :

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

La gcloud CLI renvoie une liste semblable à celle-ci:

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

Toutes les variables pour lesquelles vous ne disposez pas de l'autorisation get seront omises. Cela inclut les variables pour lesquelles vous détenez l'autorisation list, mais pas l'autorisation get.

Pour en savoir plus sur cette commande gcloud, consultez la documentation de référence sur runtime-config variables.

API

Dans l'API REST, envoyez une requête GET à l'URI suivant pour obtenir la valeur d'une variable :

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

où :

  • [PROJECT_ID] est l'ID de projet de cette requête.
  • [CONFIG_NAME] est le nom de la configuration.
  • [VARIABLE_KEY] est le nom de cette requête.

Si l'opération réussit, l'API renvoie une réponse comprenant la valeur de la variable encodée en base64 :

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

Vous devez décoder la valeur vous-même pour obtenir la chaîne. Pour en savoir plus sur la méthode, consultez la documentation sur variables().get.

Si vous souhaitez obtenir la liste des variables pour lesquelles vous disposez de l'autorisation runtimeconfig.variables.get et leurs valeurs, utilisez la méthode returnValues. Exemple :

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

L'API renvoie toutes les variables pour lesquelles vous disposez de l'autorisation :

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

De même, vous devez décoder la valeur pour obtenir la chaîne.

Pour en savoir plus sur la méthode, consultez la documentation sur variables().list.

Étape suivante