# Azion CLI sync

O comando `sync` da Azion CLI sincroniza o arquivo de configuração local de um projeto, `azion/azion.json`, com os recursos que o projeto tem na Azion. Com `--iac`, ele também grava um arquivo `azion.config` que descreve esses recursos como código. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais](/pt-br/documentacao/devtools/cli/globals/).

---

## Uso

Execute `azion sync` na pasta de um projeto que tenha uma pasta `azion`:

```bash
azion sync [flags]
```

| Flag           | Curta | Tipo   | Padrão         | Descrição                                                                             |
| -------------- | ----- | ------ | -------------- | ------------------------------------------------------------------------------------- |
| `--config-dir` | —     | string | `"azion"`      | Caminho relativo para a pasta que guarda os seus arquivos `azion.json` e `args.json`. |
| `--env`        | —     | string | `".edge/.env"` | Caminho relativo para o seu arquivo `.env`.                                           |
| `--extension`  | —     | string | `"mjs"`        | Extensão do arquivo `azion.config` que `--iac` grava: `mjs`, `cjs`, `ts` ou `js`.     |
| `--iac`        | —     | —      | —              | Também grava um arquivo `azion.config` que descreve os recursos do projeto.           |

As variáveis do arquivo `.env` cujos nomes contêm `password`, `pwd`, `secret`, `key`, `hash`, `encrypted`, `passcode`, `auth` ou `token` são enviadas à Azion como secrets.

---

## Exemplos

Cada exemplo mostra o comando e a saída que ele imprime.

### Sincronizar um projeto

Este comando sincroniza um site estático cujo deploy foi feito com `azion deploy`:

```bash
azion sync
```

O comando imprime uma linha para cada etapa:

```text
Reading manifest.json file
Synched successfully
```

Para um site que não mudou desde o `azion deploy`, `azion/azion.json` mantém o mesmo conteúdo.

### Gravar a configuração como código

Este comando sincroniza o mesmo site e grava a configuração dele em um arquivo `azion.config`:

```bash
azion sync --iac
```

O comando imprime o nome do arquivo que gravou:

```text
Reading manifest.json file
…
[Azion] [IaC] › ✔  success   Config file generated successfully at azion.config.mjs
Synched successfully
```

O arquivo `azion.config.mjs` guarda as configurações de build do site e os recursos dele: o bucket de storage, a aplicação com as cache settings e as regras, o connector e o workload. `azion/azion.json` mantém o mesmo conteúdo.

Quando o projeto já tem um arquivo `azion.config.cjs`, o comando grava `azion.config.mjs` ao lado dele. O próximo `azion deploy --local` então grava o prefixo de storage no arquivo `.mjs`.

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--debug`, `--format` e `-y`.
- [Azion CLI deploy](/pt-br/documentacao/devtools/cli/deploy.md): O comando que cria os recursos de um projeto e grava os IDs deles em `azion/azion.json`.
- [azion.config.js](/pt-br/documentacao/devtools/cli/azion-config-js.md): O que cada seção do arquivo `azion.config` que `--iac` grava configura.
- [Azion CLI link](/pt-br/documentacao/devtools/cli/link-comando.md): Como um projeto existente recebe a pasta `azion` que o comando lê.
