Ce document présente la fonctionnalité Runtime Configurator et décrit les concepts clés associés. Pour découvrir comment créer une ressource RuntimeConfig, consultez la page Créer et supprimer des ressources RuntimeConfig.
Qu'est-ce que Runtime Configurator ?
La fonctionnalité Runtime Configurator vous permet de définir et de stocker des données sous la forme d'une hiérarchie de paires valeur/clé dans Google Cloud Platform. Vous pouvez utiliser ces paires valeur/clé pour effectuer les opérations suivantes :
- Configurer dynamiquement des services
- Communiquer les états de service
- Envoyer une notification en cas de modification apportée aux données
- Partager des informations entre plusieurs niveaux de service
Par exemple, imaginez que vous possédez un cluster de nœuds qui exécutent une procédure de démarrage. Pendant le démarrage, vous pouvez configurer vos nœuds pour qu'ils indiquent leur état à Runtime Configurator, puis demander à une autre application d'interroger Runtime Configurator et d'exécuter des tâches spécifiques en fonction de l'état des nœuds.
Runtime Configurator propose également des services d'observation et de veille. Le service d'observation surveille une paire de clés spécifique et renvoie une réponse lorsque sa valeur est modifiée. Le service de veille, quant à lui, attend une condition de fin spécifique et renvoie une réponse une fois la condition remplie.
Vous pouvez utiliser Runtime Configurator via la gcloud CLI ou en tant qu'API autonome.
Concepts
Ressource Configuration
Une ressource Configuration contient une liste hiérarchique de variables. Vous pouvez créer plusieurs configurations à des fins différentes. Par exemple, vous pouvez séparer les configurations en fonction de l'environnement ("prod", "dev", "test"), des différents niveaux d'applications ou de services (backend, interface), ou des entités (une configuration par utilisateur de votre application).
Variables
Les variables sont des paires valeur/clé appartenant à une ressource RuntimeConfig. Les clés de variable ont le format suivant :
projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
Vous pouvez définir, obtenir et surveiller des valeurs de variables pour communiquer des informations à vos applications, pour signaler un état terminé, pour envoyer une notification liée à des modifications de données, et plus encore. Les variables sont hiérarchisées, donc votre clé de variable peut avoir plusieurs niveaux. Par exemple, des clés de variable peuvent suivre le format suivant :
webserver-1/users/name webserver-1/users/favorite_color
Observateurs
Vous pouvez utiliser la méthode
watch()
pour surveiller une variable et renvoyer une réponse lorsque celle-ci est modifiée, lorsque l'observateur expire ou lorsqu'il est supprimé. Grâce à la fonctionwatch()
, vous pouvez configurer dynamiquement vos applications en fonction des modifications apportées à vos données.Services de veille
Si vous créez une ressource de veille pour surveiller un préfixe de chemin d'accès spécifique, celle-ci renvoie une réponse lorsque le nombre de variables sous le préfixe atteint une valeur particulière. C'est ce que l'on appelle une condition de cardinalité.
Par exemple, si vous définissez une condition pour le chemin
/foo
et que le nombre de chemins est défini sur 2, la configuration suivante remplira la condition :/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3" # Not /foo path
Un veilleur possède à la fois une condition d'échec et de réussite que vous pouvez définir.
Après avoir créé un veilleur, le service renvoie un objet d'opération que vous interrogez à des fins d'exécution. L'opération se termine lorsque l'un des événements suivants se produit :
- La condition
success
est remplie. - La condition
failure
est remplie. - Le veilleur a atteint le délai d'expiration spécifié dans la requête initiale.
L'utilisation d'un veilleur est idéale pour les scénarios de démarrage, dans lesquels vous devez interrompre votre déploiement jusqu'à l'exécution d'un certain nombre de services.
Étapes suivantes
- Créer une ressource RuntimeConfig
- Configurer et obtenir des données
- Surveiller une variable spécifique
- Créer un service Waiter
- Consulter la documentation de référence sur v1beta1
- Consulter la section Quotas pour Runtime Configurator