# API de variáveis de ambiente

A API de variáveis de ambiente do Azion Runtime entrega a uma function os valores das variáveis de ambiente armazenadas na sua conta Azion. Uma variável mantém um valor de configuração ou um secret fora do código da function. Use-a para se conectar a um banco de dados, a uma API privada ou a qualquer outro serviço que exija credenciais. Você cria e gerencia variáveis com a [Azion CLI](/pt-br/documentacao/devtools/cli/), pelo comando `azion create variables` e pelos comandos relacionados. Para mais informações, consulte [Variáveis de ambiente](/pt-br/documentacao/plataforma/functions/environment-variables/).

> **nota**
>
> Com `azion dev`, uma function lê as variáveis do arquivo `.env` da pasta do projeto, e não as variáveis armazenadas na sua conta.

---

## Acesso

Uma function lê uma variável com `Azion.env.get()`, que recebe a chave da variável:

```javascript
const apiToken = Azion.env.get('API_SERVICE_TOKEN');
```

Em uma function com deploy feito, as variáveis da sua conta também são propriedades de `process.env`:

```javascript
const apiToken = process.env.API_SERVICE_TOKEN;
```

O argumento `env` do handler `fetch(request, env, ctx)` não contém variáveis em uma function com deploy feito: ele é um objeto vazio. Leia as variáveis com `Azion.env.get()` ou `process.env`.

> **Atenção**
>
> Sem um arquivo `.env` na pasta do projeto, `azion dev` passa todo o ambiente do shell da sua máquina para a function como `env` e `process.env`. Qualquer token ou credencial definido nesse shell fica legível pelo código da function.

---

## Parâmetros

`Azion.env.get()` recebe um parâmetro.

| Parâmetro | Tipo   | Descrição                     |
| --------- | ------ | ----------------------------- |
| `key`     | string | Chave da variável a ser lida. |

---

## Valor de retorno

`Azion.env.get()` retorna o valor armazenado sob a chave, como uma string. Uma variável criada como secret, com `--secret true`, retorna o valor dela da mesma forma.

Quando a chave não corresponde a nenhuma variável da sua conta, a chamada retorna `undefined` e não lança erro. Uma chamada que não passa nenhuma chave também retorna `undefined`.

---

## Exemplo

Esta function lê a variável `MY_VARIABLE` e retorna o valor dela como texto simples, ou uma string alternativa quando a variável não existe:

```javascript
export default {
  async fetch(request, env, ctx) {
    const value = Azion.env.get('MY_VARIABLE');

    return new Response(value || 'Variable not set', {
      headers: { 'content-type': 'text/plain' },
    });
  },
};
```

Com `MY_VARIABLE` definida como `my-value` na sua conta, uma requisição à function com deploy feito retorna:

```text
my-value
```

---

## Recursos relacionados

- [Variáveis de ambiente](/pt-br/documentacao/plataforma/functions/environment-variables.md): Os campos de uma variável, os limites da conta e as interfaces que gerenciam variáveis.
- [Azion CLI variables](/pt-br/documentacao/devtools/cli/recursos/variables.md): Todas as flags dos comandos que criam, listam, descrevem, atualizam e excluem variáveis.
- [Handlers](/pt-br/documentacao/devtools/runtime/api-reference/handlers.md): Os formatos de handler que uma function exporta e os argumentos que cada um recebe.
- [Desenvolva e teste uma function localmente](/pt-br/documentacao/plataforma/functions/local-development.md): Como passar as variáveis para uma function por um arquivo `.env` com `azion dev`.
