najít praxi vytváří samostatný Uzel.JS konfigurační soubory pro správu konfiguračních proměnných pro různá prostředí (vývoj, testování, staging a výroba) těžkopádné.
tak jsem skončil s řešením, které spravuje konfigurační proměnné pro všechna prostředí s jedním uzlem.JS konfigurační soubor.
nejprve vytvoříme konfiguraci.json ve složce root / config jako níže. Myšlenka je vývoj je výchozí prostředí a obsahuje všechny konfigurační proměnné. Proměnné config opakujete pouze v jiných prostředích, pokud chcete přepsat výchozí hodnoty proměnné config nalezené ve výchozím vývojovém prostředí.
takže jak můžete vidět, testování, staging a výrobní prostředí všechny přepsat config_id a databáze config proměnné. A pracovní a produkční prostředí také přepíše konfigurační proměnnou node_port.
dále napíšeme nějaký kód, abychom implementovali skutečnou logiku. Vytvořit config.js ve složce root / config jako níže. Tento kód:
- čte JSON nalezený v kořenovém adresáři / config.soubor json.
- nastaví výchozí config na vývojový uzel nalezený v config.json.
- nastaví config prostředí na odpovídající uzel prostředí nalezený v config.json na základě hodnoty proměnné prostředí NODE_ENV (která sama o sobě má výchozí hodnotu pro vývoj, pokud je null).
- nastaví finální konfiguraci na spojení výchozí a konfigurace prostředí voláním lodashovy metody sloučení.
- nastaví globální proměnnou gConfig s hodnotou konečné konfigurace.
- zaznamenává hodnotu gConfig.
nakonec vytvoříme root / server.js to vše otestovat v prohlížeči. Níže uvedený kód je samozřejmý. Otestujte jej nastavením různých hodnot pro proměnnou prostředí NODE_ENV.
a zde jsou některé screenshoty z testování nastavením proměnné prostředí NODE_ENV v serveru.js k vývoji a inscenaci. Můžete vidět, že pro pracovní prostředí, hodnoty pro jmeno_aplikace, app_desc a json_indentation nemění, a se zvedl od vývojové prostředí, kde, jak hodnoty pro config_id, node_port a databáze jsou přepsána.
můžete klon / ke stažení výše uvedený kód z mého úložiště GitHub zde.
jako bonus vám nic nebrání v zahrnutí tajemství, jako jsou klíče API nebo hesla do konfigurace.json. Jednoduše ji zašifrujte v klidu, než ji zatlačíte do zdrojového úložiště pomocí podnikového šifrovacího řešení, jako je služba správy klíčů Google Cloud Platform (KMS). A dešifrovat ji při každém nasazení pomocí svého oblíbeného CI / CD nástroj.
podívejte se na můj blogový příspěvek pomocí služby Cloud Key Management Service (KMS) Google Cloud Platform k šifrování / dešifrování tajemství pro více informací.
Šťastné Kódování!