Kategorie
Poslední aktualizace Březen 09, 2020
jediné aplikace vždy běží v různých prostředích, včetně alespoň na vývoji stroje a výroby na Heroku. Aplikace s otevřeným zdrojovým kódem může být nasazena do stovek různých prostředí.
ačkoli všechna tato prostředí mohou spouštět stejný kód, obvykle mají konfigurace specifické pro prostředí. Například pracovní a produkční prostředí aplikace může používat různé kbelíky Amazon S3, což znamená, že pro tyto kbelíky také potřebují různá pověření.
konfigurace specifická pro prostředí aplikace by měla být uložena v proměnných prostředí(nikoli ve zdrojovém kódu aplikace). To vám umožní izolovaně upravovat konfiguraci každého prostředí a zabraňuje ukládání zabezpečených přihlašovacích údajů do správy verzí. Další informace o ukládání config v prostředí.
na tradičním hostiteli nebo při lokální práci často nastavujete proměnné prostředí v souboru .bashrc
. Na Heroku používáte config vars.
Správa konfiguračních Varů
kdykoli nastavíte nebo odeberete konfigurační var pomocí jakékoli metody, aplikace se restartuje a vytvoří se nová verze.
Config var hodnoty jsou trvalé-zůstávají na svém místě přes nasazení a app restartuje. Pokud nepotřebujete změnit hodnotu, stačí ji nastavit pouze jednou.
pomocí Heroku CLI
heroku config
příkazy Heroku CLI usnadňuje správu konfiguračních Varů vaší aplikace.
Zobrazit aktuální config hodnot var
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
Nastavit config var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
Odstranit config var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
Pomocí Heroku Dashboard
můžete také upravit config vars z vaší aplikace Settings
karta v Heroku Dashboard:
Pomocí Platformy API
můžete spravovat své aplikace config vars programově s Heroku Platforma API pomocí jednoduchého HTTPS REST client a JSON datové struktury. Potřebujete platný přístupový token Heroku představující uživatele se správnými oprávněními k aplikaci.
přístup k hodnotám config var z kódu
Config vars jsou vystaveny kódu vaší aplikace jako proměnné prostředí. Například v uzlu.js můžete přistupovat k vaší aplikaci DATABASE_URL
config var s process.env.DATABASE_URL
.
Příklady
Přidat nějaký config vars pro S3 účtu klíče:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
Nastavte si kód přečíst vars za běhu. Například v Ruby přistupujete k proměnným prostředí pomocí vzoru ENV
– takže nyní můžete napsat inicializátor takto:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
v uzlu.js, použijte process.env
pro přístup k proměnným prostředí:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
V jazyce Java, můžete přistupovat prostřednictvím výzev k System.getenv('key')
, tak jako:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
V Pythonu pomocí knihovny boto:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
Nyní, po nasazení na Heroku, aplikace bude používat klíče nastavit v config.
Config var policies
- Config var keys by měly používat pouze alfanumerické znaky a znak podtržítka (
_
), aby byly přístupné ze všech programovacích jazyků. Config var klíče by neměly obsahovat spojovník znak. - Config var data (kombinace všech klíčů a hodnot) nesmí překročit 32 kB pro každou aplikaci.
- Config var klíče by neměly začínat dvojitým podtržítkem (
__
). - klíč config var by neměl začínat
HEROKU_
, pokud není nastaven samotnou platformou Heroku.
Add-ons, a config vars
Pokud poskytování add-on pro vaše aplikace, obvykle se přidává jeden nebo více config vars do aplikace. Hodnoty těchto konfiguračních Varů může poskytovatel doplňků kdykoli aktualizovat.
viz hodnoty doplňků se mohou změnit, abyste se dozvěděli více o doplňcích a o tom, jak používají konfigurační vary.
Místní nastavení
pro místní spuštění aplikace použijte nástroj místního příkazového řádku Heroku.
režimy výroby a vývoje
mnoho jazyků a rámců podporuje vývojový režim. To obvykle umožňuje více ladění, stejně jako dynamické překládání nebo rekompilace změněných zdrojových souborů.
například v prostředí Ruby můžete nastavit RACK_ENV
config var na development
pro povolení takového režimu.
je důležité pochopit a sledovat tyto konfigurační Vary na produkční Heroku aplikaci. Zatímco vývojový režim je obvykle skvělý pro vývoj, není to tak skvělé pro výrobu, protože může snížit výkon.