Kategorier

Sist oppdatert 09. Mars 2020

en enkelt app kjører alltid i flere miljøer, inkludert minst på utviklingsmaskinen din og i produksjon På Heroku. En åpen kildekode-app kan distribueres til hundrevis av forskjellige miljøer.

selv om disse miljøene kan kjøre samme kode, har de vanligvis miljøspesifikke konfigurasjoner. For eksempel kan en apps staging og produksjonsmiljøer bruke forskjellige Amazon S3-skuffer, noe som betyr at de også trenger forskjellige legitimasjon for disse skuffene.

en apps miljøspesifikke konfigurasjon skal lagres i miljøvariabler (ikke i appens kildekode). Dette lar deg endre hvert miljø konfigurasjon i isolasjon, og hindrer sikker legitimasjon lagres i versjonskontroll. Lær mer om lagring av config i miljøet.

på en tradisjonell vert eller når du arbeider lokalt, angir du ofte miljøvariabler i filen .bashrc. På Heroku bruker du config vars.

Administrere config vars

når du angir eller fjerner en config var ved hjelp av en hvilken som helst metode, startes appen på nytt og en ny versjon opprettes.

Config var-verdier er vedvarende – de forblir på plass på tvers av distribusjoner og app starter på nytt. Med mindre du trenger å endre en verdi, trenger du bare å sette den en gang.

Ved Hjelp Av Heroku CLI

heroku config kommandoene til Heroku CLI gjør det enkelt å administrere appens config vars.

Vis gjeldende config var-verdier

$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith

Angi 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

Ved hjelp Av Heroku-Dashbordet

du Kan også redigere config vars fra appens Settings – fanen i Heroku-Dashbordet:

Config Vars I Dashbordet

Ved Hjelp Av Plattform API

du kan administrere appens config vars programmatisk med Heroku Platform API ved hjelp av EN enkel HTTPS REST-klient og json datastrukturer. Du trenger en gyldig Heroku tilgangstoken som representerer en bruker med riktige tillatelser på appen.

Tilgang til config var-verdier fra kode

Config vars blir utsatt for appens kode som miljøvariabler. For Eksempel I Node.js du kan få tilgang til appens DATABASE_URL config var med process.env.DATABASE_URL.

Eksempler

Legg til noen config vars for Dine s3-kontonøkler:

$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190

Sett opp koden din for å lese vars ved kjøretid. For Eksempel, I Ruby får du tilgang til miljøvariablene ved hjelp av mønsteret ENV – så nå kan du skrive en initialiserer som så:

AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)

I Node.js, bruk process.env for å få tilgang 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å tilgang til det gjennom samtaler til System.getenv('key'), som så:

S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))

I Python, ved hjelp av boto biblioteket:

from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)

Nå, ved distribusjon Til Heroku, vil appen bruke tastene satt i config.

Config var-policyer

  • Config var-taster skal bare bruke alfanumeriske tegn og understrekingstegnet (_) for å sikre at de er tilgjengelige fra alle programmeringsspråk. Config var-tastene skal ikke inneholde bindestrekstegnet.
  • Config var-data (kombinasjonen av alle nøkler og verdier) kan ikke overstige 32 kb for hver app.
  • Config var-taster skal ikke begynne med en dobbel understrek (__).
  • en config var-nøkkel bør ikke begynne med HEROKU_ med mindre Den er satt av heroku-plattformen selv.

Add-ons og config vars

hvis du klargjør et tillegg for appen din, legger det vanligvis til en eller flere config vars i appen. Verdiene for disse config vars kan oppdateres av tilleggsleverandøren når som helst.

Se Tilleggsverdier kan endres for å lære mer om tilleggsprogrammer og hvordan de bruker config vars.

Lokalt oppsett

Bruk Det Lokale kommandolinjeverktøyet Heroku til å kjøre appen lokalt.

Produksjons-og utviklingsmoduser

Mange språk og rammeverk støtter en utviklingsmodus. Dette gjør vanligvis mer debugging, samt dynamisk omlasting eller rekompilering av endrede kildefiler.

i Et Ruby-miljø kan du for eksempel angi en RACK_ENV config var til development for å aktivere en slik modus.

Det er viktig å forstå og holde styr på disse config vars på en produksjon Heroku app. Mens en utviklingsmodus vanligvis er bra for utvikling, er det ikke så bra for produksjon, fordi det kan forringe ytelsen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.