Cómo cargar variables de entorno para un Back-End | Programador Web Valencia

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?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

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