.js Mejores Prácticas de las Formas más Inteligentes para Administrar los Archivos de configuración y Variables

Mar 24, 2018 · 3 min read

me parece que la práctica de la creación de Nodo independiente.archivos de configuración js para administrar variables de configuración para diferentes entornos (desarrollo, pruebas, preparación y producción) engorrosos.

Así que terminé con una solución que administra variables de configuración para todos los entornos con un solo nodo.archivo de configuración js.

Primero, vamos a crear config.json en la carpeta raíz / configuración como a continuación. La idea es que el entorno de desarrollo es el predeterminado y contiene todas las variables de configuración. Solo puede repetir variables de configuración en otros entornos si desea anular los valores de variables de configuración predeterminados que se encuentran en el entorno de desarrollo predeterminado.

Como puede ver, los entornos de prueba, ensayo y producción anulan las variables config_id y de configuración de la base de datos. Y los entornos de preparación y producción también anulan la variable de configuración node_port.

A continuación, escribamos un código para implementar la lógica real. Crear config.js en la carpeta raíz / configuración como a continuación. Este código:

  1. Lee el JSON encontrado en root / config.archivo json.
  2. Establece la configuración predeterminada en el nodo de desarrollo que se encuentra en la configuración.json.
  3. Establece la configuración del entorno en el nodo de entorno correspondiente que se encuentra en config.json basado en el valor de la variable de entorno NODE_ENV (que por defecto es desarrollo si es nulo).
  4. Establece la configuración final a la unión de configuración predeterminada y de entorno llamando al método merge de lodash.
  5. Establece la variable global gConfig con el valor de configuración final.
  6. Registra el valor de gConfig.

por último, vamos a crear root/servidor.js para probar todo esto en un navegador. El siguiente código se explica por sí mismo. Pruébelo estableciendo diferentes valores para la variable de entorno NODE_ENV.

Y aquí hay algunas capturas de pantalla de testing configurando la variable de entorno NODE_ENV en el servidor.js al desarrollo y puesta en escena. Puede ver que, en el entorno de ensayo, los valores de app_name, app_desc y json_indentation no cambian y se recogen en el entorno de desarrollo, donde se sobrescriben los valores de config_id, node_port y database.

Registro de salida para el entorno de desarrollo

Navegador de salida para el entorno de desarrollo

Registro de salida para la celebración de su entorno

Navegador de salida para el entorno de ensayo

Se puede clonar / descarga de código anterior de mi repositorio de GitHub aquí.

Como bono, nada te impide incluir secretos como claves API o contraseñas en la configuración.json. Simplemente cifre la información en reposo antes de enviarla al repositorio de origen con una solución de cifrado de nivel empresarial como el servicio de gestión de claves en la nube (KMS) de Google Cloud Platform. Y descifrelo en cada implementación utilizando su herramienta de CI / CD favorita.

Echa un vistazo a mi publicación de blog Usando el Servicio de Administración de Claves en la Nube (KMS) de Google Cloud Platform para Cifrar / Descifrar Secretos para obtener más información.

¡Feliz codificación!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.