Variáveis de Ambiente
As variáveis de ambiente são úteis para alimentar seu aplicativo com informações de fora da execução daquele aplicativo. É tipicamente usado para definir coisas como detalhes de conexão de banco de dados e chaves API.
Caracteres especiais em variáveis de ambiente
Nas chaves de variáveis de ambiente, você só pode usar a-z, 0-9 ou sublinhado (_
). Os valores das variáveis de ambiente são aplicados literalmente, com exceção de parênteses, vírgulas e aspas duplas.
Parênteses
Parênteses podem fazer o processo de build ou implantação falhar, dependendo de quando estiverem disponíveis durante a implantação. Eles não podem ser usados em variáveis de ambiente.
Vírgulas
Vírgulas não escapadas são interpretadas como separadores e não podem ser utilizadas em variáveis de ambiente.
- Por exemplo:
write_stock,read_orders
fará o processo de implantação falhar. - Para manter uma vírgula dentro de uma string, utilize uma barra invertida (
\
) assim: “write_stock,read_orders
” — que será aplicado como “write_stock,read_orders
“.
Aspas duplas
Aspas duplas não escapadas são ou desconsideradas, ou farão com que o processo de implantação falhe.
- Por exemplo:
"my_example_variable"
será aplicado como:my_example_variable
. - Para manter as aspas duplas ao redor de uma variável, escape-as com uma barra invertida (
\
). Por exemplo:\"my_example_var\"
será aplicado como:"my_example_var"
. - Se aspas duplas estiverem dentro de uma string (por exemplo,
my_exampl"e_text
), o processo de implantação falhará. - Para manter aspas duplas em torno de uma variável, escape-as com uma barra invertida (
\
) assim:my_examp\"le_var
— que será aplicado comomy_examp"le_var
.
Variáveis codificadas em Base64
Se a sua variável de ambiente estiver codificada em Base64 e você estiver enfrentando problemas (por exemplo, erros 500 no navegador, erros de build, erros em tempo de execução, etc.), tente envolver o valor da variável com aspas simples.
Adicionando variáveis de ambiente
Variáveis de ambiente podem ser adicionadas na etapa Detalhes do Aplicativo ao adicionar um aplicativo ou na página de Configurações do seu aplicativo após a implantação.
Nos detalhes do aplicativo
Para adicionar variáveis de ambiente ao adicionar o seu aplicativo, expanda a seção Variáveis de ambiente, insira os pares de chave-valor e selecione se as variáveis devem estar disponíveis durante a execução e/ou o processo de build.
Após a Implantação
Para adicionar variáveis de ambiente após a implantação, vá para a página de Configurações do seu aplicativo, role até a seção Variáveis de ambiente e clique em Adicionar variável de ambiente. Adicione os pares de chave-valor na janela modal/pop-up Adicionar variável de ambiente e selecione se as variáveis devem estar disponíveis durante a execução e/ou o processo de compilação. Clique em “Implantar alterações” para adicionar sua(s) variável(eis) e fazer o redimensionamento automático do aplicativo.
Edição de variáveis de ambiente
Você pode editar os nomes das variáveis (chaves) ou valores na página de Configurações. Para editar uma variável, clique no ícone Editar (lápis), faça suas alterações e clique em “Implantar alterações” para atualizar sua(s) variável(eis) e fazer o redimensionamento automático do aplicativo.
Quando você cria uma conexão interna e seleciona a opção Adicionar variáveis de ambiente…, os nomes das variáveis (chaves) são criados automaticamente. Alguns aplicativos podem esperar variáveis de ambiente com nomes diferentes. Por exemplo, se você quiser usar um banco de dados com o Laravel, o arquivo database.php contém nomes de variáveis diferentes dos criados automaticamente no MyKinsta. Para usar os nomes de variáveis definidos no aplicativo, edite cada variável conforme necessário e altere a chave para que corresponda ao que está definido no arquivo database.php.
Usando variáveis de ambiente
Como você usa as variáveis de ambiente depende do seu aplicativo. Em Node.js, por exemplo, você pode acessar uma variável chamada API_KEY
com process.env.API_KEY
. Em PHP, você usaria getenv('API_KEY')
.
Conexões internas e processo de build
Conexões internas estão disponíveis apenas durante a execução; elas não estão disponíveis durante o processo de build.
Se o seu aplicativo tentar se conectar a um banco de dados usando uma conexão interna durante o processo de build, isso causará um erro dizendo que o banco de dados não está em execução, o que fará com que a build falhe. Isso é esperado porque a conexão interna não está ativa durante a build; ela só pode ser usada durante a execução.
Existem algumas maneiras de contornar isso.
Opção 1: Mova a lógica que se conecta ao banco de dados do comando de build do aplicativo para o comando start. Por exemplo: se você tem um comando como prisma migrate
no processo de build, mova esse comando para o comando start. Assim, o seu aplicativo só acessará o banco de dados durante a execução, e a build será bem-sucedida.
Opção 2: Adicione variáveis de ambiente separadas conforme necessário para a conexão do banco de dados, uma disponível para o processo de build e outra apenas para a execução. As chaves podem ser as mesmas (por exemplo, DB_CONNECTION_URL
), desde que uma esteja disponível apenas durante o processo de build e a outra esteja disponível apenas durante a execução. Use os detalhes de conexão externa do banco de dados (Bancos de dados > nomedobanco > Informações > Conexões externas) para os valores de quaisquer variáveis a serem usadas no processo de build.
Variáveis de ambiente definidas pela Kinsta
Kinsta sempre define PORT
como a porta usada pelo servidor web. Se você gostaria que o seu aplicativo interagisse com o servidor web, você precisará usar esta variável de ambiente. Por exemplo, no Node.js, é assim que você iniciaria um servidor:
app.listen(process.env.PORT, () => {
console.log("Weather server is up and running")
})
Variáveis de ambiente não definidas pela Kinsta
Por padrão, a variável de ambiente NODE_ENV
não é definida no ambiente de production
para aplicativos Node.js; você deve adicionar esta variável de ambiente manualmente.
Exemplos de Linguagem de Variável de Ambiente
Como você usa as variáveis de ambiente depende do seu aplicativo. A tabela a seguir mostra como chamar uma variável de ambiente chamada API_KEY em várias linguagens:
Linguagem | Código |
---|---|
Ruby | ENV["API_KEY"] |
Node.js | process.env.API_KEY; |
Python | os.environ.get('API_KEY') |
Java | System.getenv("API_KEY"); |
Scala | System.getenv("API_KEY"); |
PHP | getenv('API_KEY'); |
Go | os.Getenv("API_KEY") |