kategorier
sidst opdateret 09.marts 2020
en enkelt app kører altid i flere miljøer, inklusive i det mindste på din udviklingsmaskine og i produktion på Heroku. En open source-app kan blive implementeret til hundredvis af forskellige miljøer.
selvom disse miljøer muligvis alle kører den samme kode, har de normalt miljøspecifikke konfigurationer. For eksempel kan en apps iscenesættelses-og produktionsmiljøer bruge forskellige S3-spande, hvilket betyder, at de også har brug for forskellige legitimationsoplysninger til disse spande.
en apps miljøspecifikke konfiguration skal gemmes i miljøvariabler (ikke i appens kildekode). Dette giver dig mulighed for at ændre hvert miljøs konfiguration isoleret og forhindrer, at sikre legitimationsoplysninger gemmes i versionskontrol. Lær mere om opbevaring af config i miljøet.
på en traditionel vært eller når du arbejder lokalt, indstiller du ofte miljøvariabler i din .bashrc
fil. På Heroku bruger du config vars.
- administration af config vars
- brug af Heroku CLI
- Se aktuelle config var-værdier
- Indstil en config var
- Fjern en config var
- brug af Heroku Dashboard
- brug af Platform API
- adgang til config var-værdier fra kode
- eksempler
- Config var-politikker
- Tilføjelser og config vars
- lokal opsætning
- Produktions-og udviklingstilstande
administration af config vars
når du indstiller eller fjerner en config var ved hjælp af en hvilken som helst metode, genstartes din app, og der oprettes en ny udgivelse.
Config var–værdier er vedvarende-de forbliver på plads på tværs af deploys og app genstarter. Medmindre du har brug for at ændre en værdi, behøver du kun at indstille den en gang.
brug af Heroku CLI
de heroku config
kommandoer i Heroku CLI gør det nemt at administrere din app config vars.
Se aktuelle config var-værdier
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
Indstil en config var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
Fjern en config var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
brug af Heroku Dashboard
du kan også redigere config vars fra din apps Settings
fane i Heroku Dashboard:
brug af Platform API
du kan administrere din apps config Vars programmatisk med Heroku Platform API ved hjælp af en simpel HTTPS REST-klient og JSON-datastrukturer. Du har brug for et gyldigt Heroku-adgangstoken, der repræsenterer en bruger med passende tilladelser på appen.
adgang til config var-værdier fra kode
Config vars udsættes for din apps kode som miljøvariabler. For eksempel i Node.js du kan få adgang til din app DATABASE_URL
config var med process.env.DATABASE_URL
.
eksempler
Tilføj nogle config vars til din S3 konto nøgler:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
Opsæt din kode for at læse vars på runtime. For eksempel i Ruby får du adgang til miljøvariablerne ved hjælp af ENV
– mønsteret – så nu Kan du skrive en initialisator som sådan:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
i Node.js, brug process.env
for at få adgang til miljøvariabler:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
i Java kan du få adgang til det via opkald til System.getenv('key')
, som så:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
i Python, ved hjælp af boto-biblioteket:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
efter implementering til Heroku bruger appen nu tasterne, der er indstillet i konfigurationen.
Config var-politikker
- Config var-taster bør kun bruge alfanumeriske tegn og understregningstegnet (
_
) for at sikre, at de er tilgængelige fra alle programmeringssprog. Config var nøgler bør ikke indeholde bindestreg tegn. - Config var-data (kombinationen af alle nøgler og værdier) må ikke overstige 32 kb for hver app.
- Config var nøgler bør ikke begynde med en dobbelt understregning (
__
). - en config var ‘ S nøgle bør ikke begynde med
HEROKU_
, medmindre den er indstillet af Heroku-platformen selv.
Tilføjelser og config vars
hvis du leverer en tilføjelse til din app, tilføjer den normalt en eller flere config vars til appen. Værdierne for disse config vars kan til enhver tid opdateres af add-on-udbyderen.
se Tilføjelsesværdier kan ændres for at få mere at vide om tilføjelser, og hvordan de bruger config vars.
lokal opsætning
brug kommandolinjeværktøjet Heroku Local til at køre din app lokalt.
Produktions-og udviklingstilstande
mange sprog og rammer understøtter en udviklingstilstand. Dette muliggør typisk mere fejlfinding samt dynamisk genindlæsning eller genkompilering af ændrede kildefiler.
for eksempel kan du i et Ruby-miljø indstille en RACK_ENV
config var til development
for at aktivere en sådan tilstand.
det er vigtigt at forstå og holde styr på disse config vars på en produktion Heroku app. Mens en udviklingstilstand typisk er god til udvikling, er den ikke så god til produktion, fordi den kan forringe ydeevnen.