categorieën

laatst bijgewerkt 09 Maart 2020

een enkele app draait altijd in meerdere omgevingen, waaronder ten minste op uw ontwikkelmachine en in productie op Heroku. Een open-source app kan worden ingezet in honderden verschillende omgevingen.

hoewel deze omgevingen allemaal dezelfde code draaien, hebben ze meestal omgevingsspecifieke configuraties. Bijvoorbeeld, een app staging en productie-omgevingen kunnen verschillende Amazon S3 emmers gebruiken, wat betekent dat ze ook verschillende referenties voor die emmers nodig hebben.

de omgevingsspecifieke configuratie van een app moet worden opgeslagen in omgevingsvariabelen (niet in de broncode van de app). Hiermee kunt u de configuratie van elke omgeving afzonderlijk wijzigen en voorkomt u dat beveiligde referenties worden opgeslagen in versiebeheer. Meer informatie over het opslaan van config in de omgeving.

op een traditionele host of wanneer u lokaal werkt, stelt u vaak omgevingsvariabelen in uw .bashrc bestand. Op Heroku gebruik je config vars.

Config VAR ‘ s beheren

wanneer u een config var instelt of verwijdert met behulp van een methode, wordt uw app opnieuw gestart en wordt een nieuwe release aangemaakt.

Config var waarden zijn persistent–ze blijven op hun plaats bij de implementaties en app herstart. Tenzij u een waarde moet wijzigen, hoeft u deze slechts één keer in te stellen.

het gebruik van de Heroku CLI

de heroku config commando ‘s van de Heroku CLI maken het eenvoudig om de configuratie VAR’ s van uw app te beheren.

Bekijk huidige config var-waarden

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

Stel een config var

$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith

Verwijderen van een config var

$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13

het Gebruik van de Heroku Dashboard

U kunt ook bewerken config vars van uw app ‘ s Settings tabblad in de Heroku Dashboard:

Config Vars in Dashboard

Via de Platform-API

U kunt het beheer van uw app ‘ s config vars programmatisch met de Heroku Platform API met behulp van een eenvoudige HTTPS REST opdrachtgever en JSON data structuren. U hebt een geldig Heroku toegangstoken die een gebruiker met de juiste machtigingen op de app.

toegang tot config var-waarden uit code

Config VAR ‘ s worden blootgesteld aan de code van uw app als omgevingsvariabelen. Bijvoorbeeld, in knooppunt.js u kunt toegang krijgen tot uw app DATABASE_URL config var met process.env.DATABASE_URL.

voorbeelden

enkele configuratievari ‘ s toevoegen voor uw S3-accountsleutels:

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

Stel uw code in om de vars te lezen tijdens runtime. Bijvoorbeeld, in Ruby krijg je toegang tot de omgevingsvariabelen met behulp van het ENV patroon – dus nu kun je een initializer schrijven zoals dit:

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

in Node.js, gebruik process.env voor toegang tot omgevingsvariabelen:

const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});

in Java kunt u het openen via oproepen naar System.getenv('key'), zoals zo:

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

in Python, met behulp van de Boto bibliotheek:

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

nu, bij de implementatie naar Heroku, de app zal de toetsen in de configuratie te gebruiken.

config var beleid

  • config var sleutels moeten alleen alfanumerieke tekens en het underscore teken (_) gebruiken om ervoor te zorgen dat ze toegankelijk zijn vanuit alle programmeertalen. Config var-sleutels mogen het koppelteken niet bevatten.
  • Config var-gegevens (de combinatie van alle sleutels en waarden) mogen de 32kb voor elke app niet overschrijden.
  • Config var-sleutels moeten niet beginnen met een dubbele underscore (__).
  • de sleutel van een config var mag niet beginnen met HEROKU_ tenzij deze door het Heroku platform zelf is ingesteld.

Add – ons en config vars

als u een add-on voor uw app, het voegt meestal een of meer config vars aan de app. De waarden van deze config vars kan worden bijgewerkt door de add-on provider op elk gewenst moment.

zie add-on waarden kunnen veranderen om meer te weten te komen over add-ons en hoe ze config vars gebruiken.

lokale instellingen

gebruik het lokale opdrachtregelprogramma Heroku om uw app lokaal uit te voeren.

productie-en ontwikkelingsmodus

veel talen en kaders ondersteunen een ontwikkelingsmodus. Dit maakt meestal meer debugging mogelijk, evenals dynamische herladen of hercompileren van gewijzigde bronbestanden.

bijvoorbeeld, in een Ruby omgeving, kunt u een RACK_ENV config var instellen op development om een dergelijke modus in te schakelen.

het is belangrijk om deze configuratievarianten te begrijpen en bij te houden op een productie-Heroku-app. Terwijl een ontwikkelingsmodus is meestal geweldig voor ontwikkeling, het is niet zo geweldig voor de productie, omdat het prestaties kan degraderen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.