kategorie
Ostatnia aktualizacja 09.03.2020
jedna aplikacja zawsze działa w wielu środowiskach, w tym przynajmniej na komputerze deweloperskim i w produkcji na Heroku. Aplikacja open source może być wdrożona w setkach różnych środowisk.
chociaż wszystkie te środowiska mogą uruchamiać ten sam kod, zwykle mają konfiguracje specyficzne dla środowiska. Na przykład Środowiska Pracy Tymczasowej i produkcyjnej aplikacji mogą korzystać z różnych wiader Amazon S3, co oznacza, że potrzebują one również różnych poświadczeń dla tych wiader.
konfiguracja aplikacji dostosowana do środowiska powinna być przechowywana w zmiennych środowiskowych (nie w kodzie źródłowym aplikacji). Pozwala to zmodyfikować konfigurację każdego środowiska w izolacji i zapobiega przechowywaniu bezpiecznych poświadczeń w kontroli wersji. Dowiedz się więcej o przechowywaniu konfiguracji w środowisku.
na tradycyjnym hoście lub pracując lokalnie, często ustawia się Zmienne środowiskowe w pliku .bashrc
. Na Heroku, używasz Config vars.
- Zarządzanie zmiennymi konfiguracyjnymi
- Korzystanie z Heroku Cli
- wyświetl bieżące wartości konfiguracji var
- Ustaw konfigurację var
- usuń konfigurację var
- korzystając z Pulpitu Nawigacyjnego Heroku
- korzystając z API platformy
- dostęp do wartości konfiguracyjnych var z kodu
- przykłady
- Zasady konfiguracji var
- Dodatki i zmienne konfiguracyjne
- konfiguracja lokalna
- tryby produkcji i rozwoju
Zarządzanie zmiennymi konfiguracyjnymi
za każdym razem, gdy ustawiasz lub usuwasz zmienny konfiguracyjne przy użyciu dowolnej metody, aplikacja jest uruchamiana ponownie i tworzy się nowe wydanie.
wartości Config var są trwałe-pozostają na miejscu we wdrożeniach i restartach aplikacji. O ile nie chcesz zmienić wartości, musisz ustawić ją tylko raz.
Korzystanie z Heroku Cli
heroku config
polecenia Heroku Cli ułatwia zarządzanie var konfiguracja aplikacji.
wyświetl bieżące wartości konfiguracji var
$ heroku configGITHUB_USERNAME: joesmithOTHER_VAR: production$ heroku config:get GITHUB_USERNAMEjoesmith
Ustaw konfigurację var
$ heroku config:set GITHUB_USERNAME=joesmithAdding config vars and restarting myapp... done, v12GITHUB_USERNAME: joesmith
usuń konfigurację var
$ heroku config:unset GITHUB_USERNAMEUnsetting GITHUB_USERNAME and restarting myapp... done, v13
korzystając z Pulpitu Nawigacyjnego Heroku
możesz także edytować konfiguracje var z zakładki Settings
w pulpicie nawigacyjnym Heroku:
korzystając z API platformy
możesz programowo zarządzać konfiguracjami var aplikacji za pomocą API Heroku Platform przy użyciu prostego klienta https REST i struktur danych JSON. Potrzebny jest ważny token dostępu Heroku reprezentujący użytkownika z odpowiednimi uprawnieniami w aplikacji.
dostęp do wartości konfiguracyjnych var z kodu
zmienne konfiguracyjne są wyświetlane w kodzie aplikacji jako zmienne środowiskowe. Na przykład w węźle.js możesz uzyskać dostęp do DATABASE_URL
Config var aplikacji z process.env.DATABASE_URL
.
przykłady
dodaj kilka zmiennych konfiguracyjnych dla kluczy konta S3:
$ cd myapp$ heroku config:set S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190Setting config vars and restarting myapp... done, v14S3_KEY: 8N029N81S3_SECRET: 9s83109d3+583493190
Skonfiguruj kod, aby odczytywał zmienne w czasie wykonywania. Na przykład, w Rubim masz dostęp do zmiennych środowiskowych używając wzorca ENV
– więc teraz możesz napisać inicjalizator w ten sposób:
AWS::S3::Base.establish_connection!( :access_key_id => ENV, :secret_access_key => ENV)
w węźle.js, użyj process.env
, aby uzyskać dostęp do zmiennych środowiskowych:
const aws = require('aws-sdk');let s3 = new aws.S3({ accessKeyId: process.env.S3_KEY, secretAccessKey: process.env.S3_SECRET});
w Javie możesz uzyskać do niej dostęp poprzez wywołania do System.getenv('key')
, tak jak:
S3Handler = new S3Handler(System.getenv("S3_KEY"), System.getenv("S3_SECRET"))
w Pythonie, używając biblioteki boto:
from boto.s3.connection import S3Connections3 = S3Connection(os.environ, os.environ)
teraz, po wdrożeniu do Heroku, aplikacja będzie używać kluczy ustawionych w konfiguracji.
Zasady konfiguracji var
- klucze konfiguracji var powinny używać tylko znaków alfanumerycznych i znaku podkreślenia (
_
), aby zapewnić, że są one dostępne ze wszystkich języków programowania. Klucze konfiguracyjne var nie powinny zawierać znaku myślnika. - Config var data (kombinacja wszystkich kluczy i wartości) nie może przekraczać 32KB dla każdej aplikacji.
- Klucze konfiguracyjne var nie powinny zaczynać się od podwójnego podkreślenia (
__
). - klucz konfiguracyjny var nie powinien zaczynać się od
HEROKU_
, chyba że jest ustawiony przez samą platformę Heroku.
Dodatki i zmienne konfiguracyjne
jeśli dodajesz dodatek do swojej aplikacji, zwykle dodaje on jeden lub więcej zmiennych konfiguracyjnych do aplikacji. Wartości tych zmiennych konfiguracyjnych mogą być aktualizowane przez dostawcę dodatku w dowolnym momencie.
Zobacz wartości dodatków można zmienić, aby dowiedzieć się więcej o dodatkach i sposobie korzystania z konfiguracji var.
konfiguracja lokalna
użyj lokalnego narzędzia linii poleceń Heroku, aby uruchomić aplikację lokalnie.
tryby produkcji i rozwoju
wiele języków i frameworków obsługuje tryb rozwoju. Zazwyczaj umożliwia to większe debugowanie, a także dynamiczne przeładowanie lub rekompilację zmienionych plików źródłowych.
na przykład, w środowisku Ruby, możesz ustawić RACK_ENV
Config var na development
, aby włączyć taki tryb.
ważne jest, aby zrozumieć i śledzić te konfiguracje var w aplikacji produkcyjnej Heroku. Podczas gdy tryb rozwoju jest zazwyczaj świetny do rozwoju, nie jest tak dobry do produkcji, ponieważ może obniżyć wydajność.