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

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:

Konfiguracja Var w dashboardzie

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ść.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.