# Azion CLI deploy

Implante uma application no edge através da Azion CLI.

:::note 
Caso um ou mais campos obrigatórios não sejam informados através das flags específicas, uma mensagem interativa pedirá as informações faltantes.
:::

---

## Uso 

```bash
  azion deploy
```

## Flags opcionais

#### path 

A opção `--path` é usada quando é necessário informar o caminho do arquivo para a aplicação estática que está sendo implantada.

#### help

A opção `--help` exibe mais informações sobre o comando `deploy`.

#### auto

A opção `--auto` executa todo o fluxo do comando sem interrupções.

#### config-dir

A opção `--config-dir` especifica o caminho relativo para onde seus arquivos personalizados `azion.json` e `args.json` estão armazenados. O padrão é "azion".

#### dry-run

A opção `--dry-run` simula o processo de deploy sem executar nenhuma ação real.

#### env

A opção `--env` especifica o caminho relativo para onde seu arquivo personalizado `.env` está armazenado. O padrão é ".edge/.env".

#### no-prompt

A opção `--no-prompt`, quando enviada, garante que sempre que a CLI exibiria um prompt interativo devido a um erro, ela apenas retorna o erro.

#### skip-build

A opção `--skip-build`, quando enviada, impede que o comando de build seja chamado durante o processo de implantação.

#### skip-framework-build

A opção `--skip-framework-build`, quando enviada, ignora a fase de build do framework antes de executar o comando de build.

#### sync

A opção `--sync` sincroniza o arquivo local `azion.json` com os recursos remotos.

#### local

A opção `--local` permite realizar o build e o deploy localmente. Isso pode ser útil se você tiver um ambiente de build personalizado ou precisar de mais controle sobre a etapa de build.

#### debug

A opção `--debug` permite que você veja os logs do processo de deploy diretamente no terminal.

#### writable-bucket

A opção `--writable-bucket`, quando enviada, cria o bucket do projeto com acesso de leitura e escrita.

#### workers

A opção `--workers` permite configurar manualmente o número de workers para o processo de upload. Por padrão, a CLI calcula automaticamente o número ideal de workers com base nos núcleos de CPU do seu sistema (máximo de 20).

```bash
azion deploy --workers 5
```

:::note 
Uma vez que o deployment é iniciado, a Azion abrirá o navegador e levará o usuário a uma página no Azion Console onde os logs e o processo de implantação podem ser monitorados. Se não abrir automaticamente, basta clicar no link fornecido. Usar a flag `--debug` abrirá o navegador e exibirá logs no terminal também.
:::

---

## Performance

A Azion CLI utiliza um motor de upload S3 otimizado para deployments de arquivos estáticos, proporcionando melhorias significativas de performance:

- **Uploads paralelos**: Arquivos são enviados simultaneamente usando workers configuráveis.
- **Cálculo automático de workers**: A CLI determina automaticamente o número ideal de workers com base nos núcleos de CPU (máximo de 20).
- **Tempos de upload aprimorados**: Projetos de médio porte que anteriormente levavam ~1m45s agora são implantados em aproximadamente ~8 segundos.

Você pode ajustar a performance de upload usando a flag `--workers` para atender às necessidades específicas do seu ambiente e projeto.

---

## Gestão de Credenciais

A Azion CLI gerencia automaticamente as credenciais S3 para deployments de aplicações estáticas. As credenciais são armazenadas de forma segura em:

```
~/.azion/<NOME_DO_PERFIL>/credentials.toml
```

Nenhuma intervenção manual é necessária. A CLI gerencia a obtenção, armazenamento e rotação de credenciais automaticamente durante o processo de deployment.

---

## Observabilidade

### Deploy Timing Summary

Ao executar `azion deploy`, você receberá um relatório detalhado de tempo no terminal exibindo o **Deploy Timing Summary**. Este relatório inclui:

| Fase | Descrição |
|------|-----------|
| Upload | Tempo gasto no upload de arquivos estáticos para o Object Storage |
| Bucket Creation | Tempo para criar ou configurar o bucket de armazenamento |
| Manifest Apply | Tempo para aplicar o manifesto de deployment |
| Total | Duração total do deployment |

### Relatório de Telemetria do Bundler

O Azion Bundler gera relatórios detalhados de telemetria para análise de performance do build. Após o build, você encontra:

| Arquivo | Formato | Descrição |
|---------|---------|-----------|
| `.edge/telemetry-report.json` | JSON | Dados de telemetria legíveis por máquina |
| `.edge/telemetry-report.html` | HTML | Timeline visual das etapas do build |

Esses relatórios ajudam a identificar gargalos e otimizar sua configuração de build para deployments mais rápidos.