Desenvolva com Hono
Crie um projeto Hono com a Azion CLI, execute-o localmente e faça o deploy dele em um domínio da Azion.
Use a Azion CLI para criar um projeto Hono a partir de um template, executá-lo no seu computador e fazer o deploy dele. Quando o deploy termina, o projeto roda na Azion e responde em um domínio da Azion.
A Azion executa um projeto Hono como uma function. O seletor do azion init oferece Hono como ponto de partida, e o build do projeto usa o preset typescript. O deploy cria uma function, uma instância da function e uma regra que executa a function em cada requisição. Ele não cria nenhum bucket de storage. Para os outros frameworks dos quais a Azion faz o build, consulte Compatibilidade com web frameworks.
Pré-requisitos
- Uma conta da Azion. Para criar uma, consulte Criar uma conta.
- A Azion CLI instalada e com login feito. Para configurá-la, consulte Primeiros passos com a Azion CLI.
- Node.js 18 ou posterior e npm.
- Um terminal e um editor de código.
Faça o deploy do projeto
A CLI cria o projeto, faz o build, executa o projeto localmente e cria os recursos que o servem na Azion.
Para criar o projeto, execute azion init com um nome:
O comando faz as perguntas em ordem. Dê estas respostas:
- Em
Choose a preset:, selecione Hono. Você pode digitarHonopara filtrar a lista. - Em
Choose a template:, selecione Hono Boilerplate. Este guia usa esse template. - Em
Do you want to install project dependencies?, respondaY. - Em
Do you want to start a local development server?, respondan. - Em
Do you want to deploy your project?, respondan.
Para todas as perguntas e as flags que as pulam, consulte Azion CLI init. O comando imprime esta saída:
O projeto fica na pasta my-app. O arquivo azion.config.ts dele define o preset typescript e src/index.ts como entrada. Para todas as configurações desse arquivo, consulte azion.config.js. A entrada contém o app Hono:
O package.json do template não tem um script dev nem um script build. Use azion dev e azion build no lugar deles.
Para fazer o build do projeto, mude para a pasta do projeto e execute azion build:
O Azion Bundler faz o build da entrada com o preset typescript e grava um arquivo de function em .edge/functions/index.js. O build imprime um aviso sobre o padrão do handler e termina:
Para executar o projeto no seu computador, execute azion dev na pasta do projeto:
O comando faz o build do projeto novamente e serve a function na porta 3333:
Em um segundo terminal, faça uma requisição ao servidor local:
A function retorna o texto da rota Hono:
O servidor continua em execução até você interrompê-lo. Para as flags do comando, consulte Azion CLI dev.
Para fazer o deploy do projeto, execute azion deploy na pasta do projeto:
A CLI envia o projeto e abre uma página do Console onde você pode acompanhar o deploy. Se o navegador não abrir, use a URL dessa página, que a CLI também imprime. No final, a CLI imprime a URL do domínio do projeto:
O deploy cria uma function e uma instância da function. Ele também cria uma application com uma regra chamada Execute Function, que executa a function em cada requisição, e um workload que serve a application no domínio. A saída não lista esses recursos; o arquivo azion/azion.json na pasta do projeto registra os IDs deles. Para as flags do comando, consulte Azion CLI deploy.
Verifique o projeto
No final do deploy, o azion deploy imprime a URL do domínio da Azion do projeto, no formato https://xxxxxxxxxx.map.azionedge.net. Faça uma requisição a essa URL, com o seu domínio no lugar de <your-domain>:
Depois que o deploy chega à localidade que responde à sua requisição, a function retorna a rota Hono:
O primeiro deploy pode levar vários minutos para responder a partir de todas as localidades. Até que uma localidade receba o projeto, o domínio responde com uma página 404 que diz There's nothing here yet, e essa página pode voltar por um tempo depois da primeira resposta com sucesso. Se você receber essa página, aguarde e solicite a URL novamente.
A function responde em todos os caminhos. Um caminho que o app Hono não define retorna o 404 Not Found em texto simples do Hono, e não a página There's nothing here yet.