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

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:

Config Vars i 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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.