Variables Ambientales

La primera vez que utiliza variables ambientales fue en programacion de Ruby, lo cual es probable la razon que a menudo me olvido como utilizarlos en una aplicación javascript. Este es uno de esas entradas que you misma volvere una y otra ves, pero espero que sea útil para alguien más por ahí .

Primero, Que es Un Variable Ambiental?

Quiero comenzar diciendo que probablemente hay términos y explicacionesmás técnicos, que los siguientes, pero en su forma más simple (al menos como yo lo entiendo), es como una variable que se establece en su máquina y puede ser visto por todo el sistema.

Why do I need them?

Son prácticos cuando empiezas a trabajar con claves del cliente, API’s, identificaciones ,OAuth ,información sensible. ¿Cómo es eso ? Cuando trabajas con proyectos de clientes o jugas con API’s, a menudo se nos dieron información que sirve como claves secretas.

Say you are working on a personal project and you push your code to Github, all the code, including all those IDs, keys, passwords are now out there for everyone to see. En verdad, esta informacion no sera demasiado consecuentes si no es secreta, pero fácilmente puede tener problemas grandes que preferiría evitar. Esto es cuando las variables ambientales son útiles

Almaceno las variables ambientales en mi bash profile. Hay varias formas de acceder a ella, pero yo lo acceso a través de SublimeText.

subl ~/.bash_profile

Esto establece la variable en bash

export GITHUB_CLIENT_ID="xxxxxxxxxxxxxxxxxxx"

Ahora conseguirlo y utilizarlo.

Para Ruby: La primera vez que trabajé con variables ambientales, estaba aprendiendo acerca OAuth with Github,

ENV["GITHUB_CLIENT_ID"]

para acortarlo, lo asigne a un variable local

client_id = ENV["GITHUB_CLIENT_ID"]

y lo llame en la línea 8

1
2
3
4
5
6
7
8
9
get "/" do
    base_url = "https://github.com/login/oauth/authorize"
    state = SecureRandom.urlsafe_base64
    session["state"] = state
    query ={
        state: state,
        scope: "user",
        client_id: client_id,
    }

Para Javascript: En este caso, yo estaba usando el API de Instagram y quería mantener mi ID de cliente oculto. En este ejemplo, seguiremos el mismo concepto general.

El paso de bash profile es el mismo

export INSTAGRAM_CLIENT_ID="xxxxxxxxxxxxxxxxxx"

En mi código, lo he asignado a un variable

var apiKey = process.env.INSTAGRAM_CLIENT_ID;

request('https://api.instagram.com/v1/tags/' + searchTerm + '/media/recent?client_id=' + apiKey, function(error, response, body)...

Un paso más que aquí, en la misma ventana terminal que está utilizando para ejecutar la aplicación, ejecute el siguiente

source ~/.bash_profile

Es el último paso que a menudo olvido e inspirado este post .