Categories
Last updated March 09, 2020
yksi sovellus toimii aina useissa ympäristöissä, mukaan lukien ainakin kehityskoneellasi ja tuotannossa Herokulla. Avoimen lähdekoodin sovellus saatetaan ottaa käyttöön sadoissa eri ympäristöissä.
vaikka nämä ympäristöt saattavat käyttää samaa koodia, niillä on yleensä ympäristökohtaiset konfiguraatiot. Esimerkiksi sovelluksen lavastus-ja tuotantoympäristöissä saatetaan käyttää erilaisia Amazon S3-kauhoja, eli ne tarvitsevat myös erilaisia valtakirjoja näille kauhoille.
sovelluksen ympäristökohtainen kokoonpano tulee tallentaa ympäristömuuttujiin (Ei sovelluksen lähdekoodiin). Näin voit muokata kunkin ympäristön asetuksia erikseen ja estää suojattujen valtakirjojen tallentamisen versionhallintaan. Lisätietoja configin säilyttämisestä ympäristössä.
perinteisellä isännällä tai paikallisesti työskenneltäessä asetat usein ympäristömuuttujia .bashrc
– tiedostoosi. Herokulla käytetään config vareja.
Config varsin hallinta
aina kun asetat tai poistat config Varin millä tahansa menetelmällä, sovelluksesi käynnistetään uudelleen ja luodaan uusi julkaisu.
Config var–arvot ovat pysyviä-ne pysyvät paikoillaan koko käyttöönoton ja sovellusten uudelleenkäynnistyksen ajan. Ellei arvoa tarvitse muuttaa, se on asetettava vain kerran.
käyttämällä Heroku CLI
Heroku CLI: n heroku config
– komentoja on helppo hallita sovelluksen config vareja.
Näytä nykyiset config var-arvot
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
Aseta config var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
Poista config var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
käyttämällä Heroku Dashboard
voit myös muokata config var-asetuksia sovelluksesi Settings
– välilehdestä Heroku Dashboard-välilehdessä:
Platform API
voit hallita sovelluksen config vars ohjelmallisesti Heroku Platform API: n avulla käyttäen yksinkertaista HTTPS REST-asiakasohjelmaa ja JSON-tietorakenteita. Tarvitset kelvollisen Heroku access Tokenin, joka edustaa käyttäjää, jolla on asianmukaiset oikeudet sovelluksessa.
Config var-arvojen käyttäminen koodista
Config var-arvot altistuvat sovelluksesi koodille ympäristömuuttujina. Esimerkiksi solmussa.js voit käyttää sovelluksen DATABASE_URL
config var kanssa process.env.DATABASE_URL
.
Examples
Add S3-tiliavaimille joitakin config-vareja:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
Määritä koodi lukea vars suoritettaessa. Esimerkiksi Rubyssa pääsee ympäristömuuttujiin ENV
– kuvion avulla – nyt siis voi kirjoittaa alustajan näin:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
solmussa.js, käytä process.env
ympäristömuuttujien käyttöön:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
Jaavalla siihen pääsee soittamalla System.getenv('key')
, kuten näin:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
Pythonissa boto-kirjastoa käyttäen:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
nyt, kun otetaan käyttöön Heroku, sovellus käyttää avaimet asetettu config.
Config var-käytännöt
- Config var-avaimissa tulisi käyttää vain aakkosnumeerisia merkkejä ja alleviivausmerkkiä (
_
) sen varmistamiseksi, että ne ovat saatavilla kaikilta ohjelmointikieliltä. Config var-näppäimissä ei saa olla väliviivaa. - Config var-tiedot (kaikkien avainten ja arvojen yhdistelmä) eivät saa ylittää 32kb: tä kullekin sovellukselle.
- Config var-näppäimet eivät saa alkaa kaksinkertaisella alaviivalla (
__
). - config Varin avain ei saa alkaa
HEROKU_
, ellei Heroku-alusta itse aseta sitä.
Lisäosat ja asetusvarat
jos annat sovelluksellesi lisäosan, se lisää yleensä yhden tai useamman asetusvarauksen sovellukseen. Lisäosan tarjoaja saattaa päivittää näiden asetusasetusten arvot milloin tahansa.
Katso lisäosien arvot voivat muuttua, jotta saat lisätietoja lisäosista ja siitä, miten ne käyttävät asetusasetuksia.
Local setup
käytä Heroku-komentorivityökalua suorittaaksesi sovelluksesi paikallisesti.
tuotanto-ja kehitystavat
monet kielet ja kehykset tukevat kehitystapaa. Tämä mahdollistaa yleensä enemmän virheenkorjausta sekä muuttuneiden lähdetiedostojen dynaamisen uudelleenlatauksen tai uudelleenkompiloinnin.
esimerkiksi Ruby-ympäristössä voi asettaa RACK_ENV
config var-arvon development
tällaisen tilan mahdollistamiseksi.
on tärkeää ymmärtää ja seurata näitä config vareja production Heroku-sovelluksessa. Vaikka kehitystila on tyypillisesti hyvä kehitykseen, se ei ole niin suuri tuotantoon, koska se voi heikentää suorituskykyä.