È possibile impostare una variabile di ambiente Heroku senza riavviare l'app?Impostare la variabile di ambiente Heroku senza riavviare l'app
La mia app si collega a diversi servizi online tramite OAuth2. Per ogni servizio a cui mi collego, ho bisogno di impostare un ID OAuth2 e un segreto. Per mantenere queste variabili di configurazione al di fuori del mio codice, sto usando le variabili di ambiente e le sto leggendo su process.env
(node.js).
Ogni volta che aggiungo un nuovo servizio alla mia app, devo aggiungere le corrispondenti variabili d'ambiente per l'ID e il segreto. Ho bisogno di fare questo prima di premere il codice più recente, in modo che quando l'app si avvii con la nuova connessione di servizio, l'ID OAuth2 e le variabili segrete siano disponibili.
Attualmente il mio flusso di lavoro è la seguente:
- Impostare le variabili di ambiente utilizzando il toolbelt Heroku:
heroku config:set <SERVICE>_ID=foo <SERVICE>_SECRET=bar
- Inserire il codice più recente:
git push heroku master
Attualmente, entrambe queste operazioni si riavvierà l'applicazione. Preferirei davvero che la prima operazione non riavvii l'app, in quanto le modifiche a questi parametri di configurazione non hanno bisogno di essere effettive fino al passaggio 2). Riavviando al punto 1) la mia app subirà tempi di fermo non necessari.
Quindi, esiste un modo per impedire al passaggio 1) di riavviare l'app?
Non è possibile modificare le variabili di ambiente per un processo in esecuzione. Puoi solo manipolarlo dall'interno dell'app. Ma se hai bisogno di cambiare una variabile d'ambiente mentre l'app è già in esecuzione, stai comunque facendo qualcosa di sbagliato. – poke
Grazie per il commento, ma se noterete, in realtà sto aggiungendo una variabile di ambiente, non cambiando quella esistente. Quindi non penso che ciò valga come "fare qualcosa di sbagliato"? – fiznool
Si sta impostando un servizio segreto dopo che l'applicazione è già in esecuzione. Un servizio segreto è per me una configurazione che non dovrebbe mai cambiare mentre l'applicazione è in esecuzione. – poke