Questo documento offre una panoramica della funzionalità Runtime Configurator e descrive i concetti chiave relativi a Runtime Configurator. Per scoprire come creare una risorsa RuntimeConfig, leggi l'articolo Creare ed eliminare risorse RuntimeConfig.
Che cos'è Runtime Configurator?
La funzionalità Runtime Configurator consente di definire e archiviare i dati come una gerarchia di coppie chiave/valore in Google Cloud Platform. Puoi utilizzare queste coppie chiave-valore per:
- Configurare i servizi in modo dinamico
- Comunicare gli stati dei servizi
- Invia notifica di modifiche ai dati
- Condividere informazioni tra più livelli di servizi
Ad esempio, immagina uno scenario in cui hai un cluster di nodi che eseguono una procedura di avvio. Durante l'avvio, puoi configurare i nodi in modo che segnalino il loro stato a Runtime Configurator e quindi fare un'altra query sull'applicazione in fase di configurazione del runtime ed eseguire attività specifiche in base allo stato dei nodi.
Runtime Configurator offre inoltre un servizio Watcher e un servizio Waiter. Il servizio Watcher controlla una coppia di chiavi specifica e restituisce quando il valore della coppia di chiavi cambia, mentre il servizio Waiter attende una specifica condizione finale e restituisce una risposta dopo che questa condizione è stata soddisfatta.
Puoi utilizzare Runtime Configurator tramite l'interfaccia a riga di comando gcloud o come API autonoma.
Concetti
Risorsa di configurazione
Una risorsa Config contiene un elenco gerarchico di variabili. Puoi creare configurazioni diverse per scopi diversi. Ad esempio, puoi separare le configurazioni in base all'ambiente (prod, dev, test), in base a diversi livelli di applicazioni o servizi (backend, front-end) o in base a entità (una configurazione per utente dell'applicazione).
Variabili
Le variabili sono coppie chiave/valore appartenenti a una risorsa RuntimeConfig. Le chiavi delle variabili hanno il seguente formato:
projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
Puoi impostare, ricevere e osservare valori della variabile per comunicare informazioni alle applicazioni, segnalare uno stato completato, inviare notifiche di modifiche ai dati e altro ancora. Le variabili sono gerarchiche, per cui la chiave della variabile potrebbe avere più livelli. Ad esempio, le chiavi delle variabili di esempio potrebbero essere:
webserver-1/users/name webserver-1/users/favorite_color
Acquirenti
Puoi utilizzare il metodo
watch()
per osservare una variabile e tornare quando la variabile cambia, il tempo di visualizzazione o il tempo di visualizzazione viene eliminato. Utilizza la funzionalitàwatch()
per configurare dinamicamente le applicazioni in base alle modifiche nei dati.Cavalieri
Se crei una risorsa Attesa per visualizzare un determinato prefisso del percorso, la risposta viene visualizzata una volta che il numero di variabili sotto il prefisso raggiunge un determinato importo. Questa è definita condizione di cardinalità.
Ad esempio, se imposti una condizione per il percorso
/foo
e il numero di percorsi è impostato su 2, la seguente configurazione soddisferà la condizione:/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3" # Not /foo path
Un cameriere può impostare sia una condizione di errore sia una di errore.
Dopo aver creato un cameriere, il servizio restituisce un oggetto operazione che puoi compilare per completare. L'operazione è completa quando si verifica una delle seguenti condizioni:
- La condizione
success
è soddisfatta. - La condizione
failure
è soddisfatta. - Il cameriere ha raggiunto la scadenza di timeout specificata nella richiesta iniziale.
L'utilizzo di un cameriere è l'ideale per gli scenari di avvio, in cui potresti dover mettere in pausa un deployment fino a quando un determinato numero di servizi non è in esecuzione.
Passaggi successivi
- Creazione di una risorsa RuntimeConfig.
- Impostazione e recupero dei dati.
- Guardare una variabile specifica.
- Creazione di un cameriere.
- Fai riferimento a Riferimento v1beta1.
- Fai riferimento a Quote per configuratore di runtime.