Cómo cargar variables de entorno para un Back-End

2 minutos

Enviroment

Una buena práctica es no dejar secretos, como contraseñas o Tokens, dentro del código. Y ni mencionar el peligro que conlleva subirlo a un repositorio. En gran medida se hace hincapié en esta omisión de variables por no dejar expuesto al resto del equipo un contenido sensible. Además otorga la posibilidad de jugar con diferentes credenciales durante el desarrollo, algunas pueden ser solo para hacer pruebas y otras las que serán usadas en el proyecto final.

Muchos Frameworks ya incorporan un sistema similar al que vamos a mencionar. En breve descubrirás que la técnica es tan sencilla que puedes montártelo por tu cuenta.

Primero crea un archivo plano con el siguiente contenido. Yo lo llamaré: .env

TOKEN=123456789
USER=TUX
PASSWORD=qwe123

Son 3 futuras variables de entorno con sus valores.

A continuación ejecuta el siguiente comando en el terminal, en la misma carpeta donde se encuentra el fichero. Convertirá cada línea del fichero en una variable de entorno.

Si usas Bash

export $(cat .env | egrep -v "(^#.*|^$)" | xargs)

Si usas Fish

for i in (cat .env)
    if test (echo $i | sed -E 's/^[[:space:]]*(.).+$/\\1/g') != "#"
        set arr (echo $i |tr = \n)
        if test $arr[1] != ""
            set -gx $arr[1] $arr[2]
        end
    end
end

Si quieres comprobar que se ha ejecutado correctamente puedes hacer un echo con cualquier variable añadiendo el prefijo $.

echo $TOKEN
123456789

Tarea terminada. Recuerda que si cierras el terminal o modificas el archivo, debes volver a ejecutar el comando.

Leer variables de entorno en PHP

$token = getenv('TOKEN');
$user = getenv('USER');
$password = getenv('PASSWORD');

echo $token;
// 123456789

Leer variables de entorno en Python

import os

token = os.getenv('TOKEN')
user = os.getenv('USER')
password = os.getenv('PASSWORD')

Leer variables de entorno en Clojure

(def token (System/getenv "TOKEN"))
(def user (System/getenv "USER"))
(def password (System/getenv "PASSWORD"))

Aunque también puedes usar la dependencia environ.

Añade en project.clj.

[environ "0.5.0"]

Y usa con total libertad.

(require [environ.core :refer [env]])

(def token (env :TOKEN))
(def user (env :USER))
(def password (env :PASSWORD))

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

No te sientas obligado a realizarme una donación, pero cada aportación me ayuda a mantener el sitio en activo para que continúe existiendo y me motiva a continuar creando nuevo contenido.

Comprame un café
Pulsa sobre la imagen
  • 1 café: Se mantiene el dominio durante 4 meses.
  • 2 cafés: Se paga 1 mes de servidor.
  • 3 cafés: Se cubre 1 mes de Black box.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...