Categorii
Ultima actualizare 09 martie 2020
o singură aplicație rulează întotdeauna în mai multe medii, inclusiv cel puțin pe mașina dvs. de dezvoltare și în producție pe Heroku. O aplicație open-source ar putea fi implementată în sute de medii diferite.
deși aceste medii ar putea rula toate același cod, ele au de obicei configurații specifice mediului. De exemplu, mediile de așteptare și de producție ale unei aplicații ar putea utiliza diferite găleți Amazon S3, ceea ce înseamnă că au nevoie și de acreditări diferite pentru acele găleți.
configurația specifică mediului unei aplicații trebuie stocată în variabile de mediu (nu în codul sursă al aplicației). Acest lucru vă permite să modificați configurația fiecărui mediu în mod izolat și împiedică stocarea acreditărilor sigure în controlul versiunii. Aflați mai multe despre stocarea configurării în mediu.
pe o gazdă tradițională sau când lucrați local, setați adesea variabile de mediu în fișierul .bashrc
. Pe Heroku, utilizați Config vars.
- gestionarea var-urilor de configurare
- utilizarea Heroku CLI
- vizualizați valorile curente de configurare var
- setați o configurare var
- eliminați o configurare var
- folosind tabloul de bord Heroku
- folosind API-ul platformei
- accesarea valorilor de configurare var din Codul
- Exemple
- Config var politici
- Suplimente și VAR-uri de configurare
- configurare locală
- moduri de producție și dezvoltare
gestionarea var-urilor de configurare
ori de câte ori setați sau eliminați un var de configurare folosind orice metodă, aplicația dvs. este repornită și este creată o nouă versiune.
Config var valorile sunt persistente–ele rămân în loc peste implementări și repornește app. Dacă nu trebuie să modificați o valoare, trebuie să o setați o singură dată.
utilizarea Heroku CLI
comenzile heroku config
ale Heroku CLI facilitează gestionarea setărilor de configurare ale aplicației.
vizualizați valorile curente de configurare var
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
setați o configurare var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
eliminați o configurare var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
folosind tabloul de bord Heroku
puteți edita, de asemenea, VAR-urile de configurare din fila Settings
a aplicației dvs. din tabloul de bord Heroku:
folosind API-ul platformei
puteți gestiona programatic VAR-urile de configurare ale aplicației dvs. cu API-ul platformei Heroku folosind un simplu client https REST și structuri de date JSON. Aveți nevoie de un simbol de acces Heroku valid care să reprezinte un utilizator cu permisiuni adecvate pentru aplicație.
accesarea valorilor de configurare var din Codul
VAR-urile de configurare sunt expuse codului aplicației dvs. ca variabile de mediu. De exemplu, în nod.js puteți accesa aplicația DATABASE_URL
Config var cu process.env.DATABASE_URL
.
Exemple
adăugați câteva VAR-uri de configurare pentru cheile contului S3:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
Configurați-vă codul pentru a citi VAR-urile în timpul rulării. De exemplu, în Ruby accesați variabilele de mediu folosind modelul ENV
– deci acum Puteți scrie un inițializator ca acesta:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
în nod.js, utilizați process.env
pentru a accesa variabilele de mediu:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
în Java, îl puteți accesa prin apeluri către System.getenv('key')
, așa:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
în Python, folosind biblioteca boto:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
acum, la implementarea la Heroku, aplicația va folosi tastele stabilite în config.
Config var politici
- Config var chei ar trebui să utilizeze numai caractere alfanumerice și caracterul de subliniere (
_
) pentru a se asigura că acestea sunt accesibile din toate limbajele de programare. Tastele Config var nu trebuie să includă caracterul cratimă. - Config var date (combinația dintre toate tastele și valorile) nu poate depăși 32kb pentru fiecare aplicație.
- Config var chei nu ar trebui să înceapă cu un dublu subliniere (
__
). - o cheie de configurare var nu ar trebui să înceapă cu
HEROKU_
decât dacă este setată de platforma Heroku în sine.
Suplimente și VAR-uri de configurare
dacă furnizați un add-on pentru aplicația dvs., acesta adaugă de obicei unul sau mai multe VAR-uri de configurare la aplicație. Valorile acestor VAR-uri de configurare pot fi actualizate de către furnizorul de add-on în orice moment.
vezi Add-on valorile se pot schimba pentru a afla mai multe despre add-on-uri și modul în care acestea utilizează var-uri de configurare.
configurare locală
utilizați instrumentul de linie de comandă locală Heroku pentru a rula aplicația la nivel local.
moduri de producție și dezvoltare
multe limbi și cadre acceptă un mod de dezvoltare. Acest lucru permite de obicei mai multe depanare, precum și reîncărcarea dinamică sau recompilarea fișierelor sursă modificate.
de exemplu, într-un mediu Ruby, puteți seta un RACK_ENV
Config var la development
pentru a activa un astfel de mod.
este important să înțelegeți și să urmăriți aceste VAR-uri de configurare pe o aplicație Heroku de producție. În timp ce un mod de dezvoltare este de obicei excelent pentru dezvoltare, nu este atât de grozav pentru producție, deoarece poate degrada performanța.