Como definir variáveis de ambiente
Tempo de leitura: 7 minutos
Há algumas coisas que não devemos compartilhar com nosso código. Geralmente, se trata de valores de configuração que dependem do ambiente, como sinalizadores de depuração ou tokens de acesso para APIs como o Twilio. As variáveis de ambiente são uma boa solução e são fáceis de consumir na maioria das linguagens de programação.
Variáveis de ambiente????
As variáveis de ambiente, como o nome sugere, são variáveis em seu sistema que descrevem seu ambiente. A variável de ambiente mais conhecida é provavelmente PATH
e contém os caminhos para todas as pastas que podem conter executáveis. Com PATH
, você pode escrever apenas o nome de um executável em vez do caminho completo para ele em seu terminal, pois o shell verificará o diretório local, bem como todos os diretórios especificados na variável PATH
para este executável.
Além das variáveis incorporadas, também há a possibilidade de definir as nossas próprias variáveis de ambiente. Como estão vinculadas ao nosso ambiente, elas são excelentes para coisas como tokens de acesso à API. Você pode ter uma variável definida para um valor em sua máquina de desenvolvimento e outra em seu ambiente de produção sem instruções if
ou arquivos de configuração especiais.
As bibliotecas auxiliares da Twilio, por exemplo, procuram as variáveis de ambiente TWILIO_ACCOUNT_SID
e TWILIO_AUTH_TOKEN
se você instanciar um cliente sem os dois valores. Dessa forma, você não precisa se preocupar com o envio acidental de credenciais sensíveis para um local como o GitHub.
Definir variáveis de ambiente nas distribuições do macOS e Linux
Para definir variáveis de ambiente no macOS ou em qualquer sistema operacional baseado em UNIX, primeiro é necessário descobrir qual shell você está executando. Para fazer isso, você pode executar no seu terminal o comando:
O final da saída deve indicar qual shell você está executando. O shell típico é o shell bash
que você usará neste exemplo. Mas as etapas são semelhantes para outros shells, como zsh
ou fish
.
Para definir uma variável de ambiente, você precisa usar o comando "export" no seguinte formato:
Como isso só seria definido para a sessão atual, você precisa adicionar esse comando a um arquivo que é executado para cada sessão. Para isso, abra o arquivo .bashrc em seu diretório inicial com seu editor de código favorito. Em seguida, adicione a seguinte linha em algum lugar no arquivo:
Substitua <YOUR_ACCOUNT_SID>
pelo SID da sua conta real do seu console da Twilio. Salve o arquivo e abra uma nova instância de terminal para testar se funcionou executando:
Você deve ver o valor armazenado nele.
Variáveis de ambiente Windows
Se estiver usando uma máquina Windows, você tem algumas maneiras de definir variáveis de ambiente. Os métodos mais comuns incluem usar o PowerShell, CMD ou GUI (Graphical User Interface, interface gráfica do usuário).
Há três locais diferentes em que você pode armazenar variáveis de ambiente:
- No processo atual. O processo atual é mais comumente o shell que você está executando, como PowerShell, CMD, Bash etc. No entanto, o processo atual também pode ser outros aplicativos, incluindo o seu. Qualquer processo filho iniciado a partir do processo atual herda as variáveis de ambiente desse processo. As variáveis de ambiente são removidas quando o processo termina. Isso significa que você precisa reconfigurar as variáveis de ambiente sempre que abrir um novo shell.
Também é assim que as variáveis de ambiente são armazenadas nas distribuições do macOS e do Linux. - No registro do usuário. A variável de ambiente está disponível para todos os processos iniciados pelo usuário e nenhum outro usuário pode acessar essas variáveis de ambiente (sem privilégios elevados).
- No registro da máquina. As variáveis de ambiente estão disponíveis para todos os usuários e processos, e a configuração de variáveis de ambiente para a máquina requer privilégios elevados.
Em qual local você deve armazenar as variáveis de ambiente?
Se você estiver executando seu aplicativo a partir de um shell e não quiser que as variáveis de ambiente permaneçam, defina as variáveis de ambiente para o processo atual. Se você quiser que as variáveis de ambiente permaneçam, armazene-as no registro do usuário. Se você quiser configurar variáveis de ambiente para todos os usuários, não apenas para um usuário específico ou para você mesmo, armazene-as no registro da máquina.
Definir variáveis de ambiente usando o PowerShell
Embora o PowerShell também seja suportado em distribuições macOS e Linux por meio do PowerShell Core, o Windows PowerShell é pré-instalado no Windows e é o shell recomendado para a plataforma Windows. Os seguintes cmdlets para configuração de variáveis de ambiente funcionarão no Windows, macOS e Linux.
A maneira mais comum e fácil de definir variáveis de ambiente no PowerShell é usar a variável $Env
, assim:
Depois de $Env
, adicione dois pontos, seguido pelo nome da variável de ambiente, seguido pelo sinal de igual, seguido pelo valor que você deseja usar. Isso definirá a variável de ambiente para o processo atual e ela será herdada por qualquer processo filho que você iniciar a partir desse shell.
As duas alternativas a seguir têm o mesmo resultado, mas são menos comuns:
Para que as variáveis de ambiente persistam entre as instâncias do shell, você pode salvar os cmdlets no script do seu perfil, ou no Windows, você pode salvá-los no registro do usuário ou no registro da máquina da seguinte forma:
Os dois comandos acima resultam em no-op em macOS e Linux porque não há conceito de variáveis de ambiente de Usuário ou Máquina, apenas variáveis de ambiente de processo. Consulte a documentação da Microsoft sobre as variáveis de ambiente do PowerShell para obter mais detalhes.
Definir variáveis de ambiente de CMD
Cmd, também conhecido como cmd.exe e o Prompt de comando vêm com todas as instalações do Windows. Você provavelmente deve usar o PowerShell, mas, se não puder, veja como pode definir variáveis de ambiente a partir de cmd e arquivos batch.
Para definir uma variável de ambiente, você pode usar o comando set
, assim:
Esse comando definirá a variável de ambiente para o processo atual, e os processos filho herdarão as variáveis de ambiente. No entanto, quando você fechar o cmd, as variáveis de ambiente serão perdidas.
Para que as variáveis de ambiente persistam entre os processos, você pode armazená-las no registro do usuário e/ou da máquina usando o comando setx
.
Para saber mais sobre os demais recursos desses comandos, leia a documentação set command e setx command.
Definir variáveis de ambiente usando a interface gráfica do usuário
A configuração de variáveis de ambiente no Windows usando a GUI fica oculta atrás de várias camadas de caixas de diálogo de configurações. Para abrir a respectiva interface, primeiro é necessário abrir o prompt "Executar" do Windows. Para isso, pressione as teclas Windows
e R
no teclado ao mesmo tempo. Em seguida, digite sysdm.cpl
no campo de entrada e pressione Enter
ou OK.
Na nova janela exibida, clique na guia Advanced (Avançado) e depois no botão Environment Variables (Variáveis de ambiente), no canto inferior direito da janela.
A janela tem duas seções diferentes. Uma é a lista de variáveis de ambiente que são específicas para seu usuário. Isso significa que elas não estão disponíveis para os outros usuários. A outra seção contém as variáveis de todo o sistema que são compartilhadas entre todos os usuários.
Crie uma variável específica do usuário clicando no botão New (Novo) abaixo da seção específica do usuário. No prompt, agora você pode especificar o nome da variável, bem como o valor. Crie uma nova variável com o nome TWILIO_ACCOUNT_SID
e copie seu SID da conta Twilio do Console. Pressione OK no prompt para criar a variável, seguido por OK na janela "Environment Variables". Tudo pronto agora.
Para testar se funcionou, abra o Prompt de comando ao pressionar Windows
+ R
e digitar cmd.exe
. Se o Prompt de comando já estiver aberto, certifique-se de reiniciá-lo para garantir que suas alterações sejam aplicadas. No Prompt de comando, execute o seguinte comando:
Isso deve imprimir o valor que você salvou na variável de ambiente.
Usar arquivos .env
Em algumas situações, você só precisa de um conjunto de variáveis de ambiente para um único projeto. Nesse caso, os arquivos .env são uma excelente solução. Eles são arquivos dentro do projeto em que você especifica variáveis de ambiente e, depois, você usa uma biblioteca para a sua respectiva linguagem de programação para carregar o arquivo que definirá dinamicamente essas variáveis.
Há bibliotecas para a maioria das linguagens de programação para carregar esses arquivos. Veja algumas:
- Ruby
- Node.js
- Python
- C#, F#, VB.NET (dotnet-env ou dotenv.net)
- Java (tutorial)
- PHP
Crie um arquivo .env na pasta do projeto (normalmente na raiz) e coloque os pares de valores principais nele. Pode ficar parecido com o seguinte:
Agora, tudo o que você precisa fazer é consumir a respectiva biblioteca e, em seguida, você pode usar a variável de ambiente. Em Node.js, por exemplo, o respectivo código seria o seguinte:
Provedores de nuvem
A configuração de variáveis de ambiente em sua máquina de desenvolvimento local ou em uma VM é apenas metade do trabalho. E se você estiver hospedando seu aplicativo em um ambiente de nuvem, como Heroku, Azure ou AWS, ou se você o tiver envolvido em um contêiner do Docker? Felizmente, todos esses provedores suportam maneiras de definir variáveis de ambiente.
Se você não conseguir encontrar seu host de nuvem entre essa lista, isso não significa necessariamente que não há como configurar variáveis de ambiente. Consulte a documentação para saber mais.
Resumo
É isso! Agora você pode definir variáveis de ambiente, o que significa que você pode tirar todos os valores de configuração baseados em ambiente do seu código e torná-lo mais flexível e seguro!
Lembre-se de que esses valores ainda estão armazenados em texto sem formatação. Se estiver planejando armazenar valores confidenciais, você deve usar algo como uma solução de armazenamento secreta, como o Vault.
Se tiver alguma dúvida ou quiser me mostrar as coisas incríveis que você está criando atualmente, sinta-se à vontade para me enviar um e-mail: dkundel@twilio.com ou entrar em contato comigo no Twitter @dkundel. Mal posso esperar para ver o que você criou.
Publicações relacionadas
Recursos relacionados
Twilio Docs
De APIs a SDKs e aplicativos de amostra
Documentação de referência de API, SDKs, bibliotecas auxiliares, guias de início rápido e tutoriais para sua linguagem e plataforma.
Centro de Recursos
Os mais recentes e-books, relatórios do setor e webinars
Aprenda com especialistas em engajamento do cliente para melhorar sua própria comunicação.
Ahoy
Centro da comunidade de desenvolvedores da Twilio
Melhores práticas, exemplos de código e inspiração para criar comunicações e experiências de engajamento digital.