Teste e implante a partir de CI
Um loop viável desde a primeira edição até uma implantação automática, com os limites da emulação local declarados antecipadamente.
1. Execute-o localmente
aura functions serve executa seu arquivo com Deno e o reinicia quando você salva.
É um servidor Deno simples. Comparado com a plataforma, possui:
- Sem cabeçalhos de plataforma.
x-aura-roleex-aura-user-idestão ausentes: envie-os você mesmo comcurl -Hpara testar ramificações de autorização. - Sem segredos. Passe-os em seu shell:
STRIPE_SECRET_KEY=sk_test_… aura functions serve checkout. - Sem limites. Memória, tempo limite, tamanho do corpo e limites de taxa não são aplicados.
- Solicitações simples. Você chama a função diretamente, então
pathemethodsão aqueles do seucurl, não as opçõesinvokedo SDK.
O SDK não pode direcionar este servidor porque invoke chama a rota da plataforma. Teste o caminho do SDK em um projeto real, conforme abaixo.
2. Teste de verdade
Crie um projeto para desenvolvimento (veja sua primeira função), implante a função lá e teste por meio do SDK. Isso abrange os cabeçalhos de identidade, limites e classes de erro da plataforma.
Dicas:
- Use um projeto dedicado, nunca produção, e mantenha suas chaves em segredo de CI.
- O limite da taxa de invocação é de 15 chamadas e 1 por segundo por IP. Espace seus testes ou execute-os em série.
3. Implantar a partir de CI
A CLI aura é instalada a partir do npm no macOS Apple Silicon e da fonte em outro lugar, portanto, um trabalho de CI do Linux é mais simples com a API HTTP. A implantação é um POST por função, autenticado com uma chave service_role. Este loop exato foi executado em um projeto real e a função respondeu posteriormente.
Fatos que tornam isso seguro para execução em cada push:
- O
POSTsubstitui o código de uma função existente e mantém seus segredos, pois o corpo não possuienv_vars. - Uma função é de arquivo único: as importações relativas não são enviadas. Agrupe primeiro se você usar módulos locais.
- Não há histórico de versão no servidor. Seu histórico do Git é a reversão: para voltar, reverta o commit e deixe o CI implantar novamente.
Em seguida, execute os testes de integração no projeto que você acabou de implantar, em um trabalho seguinte.
4. Desenvolvimento, preparação e produção
Um projeto é um ambiente. Crie um projeto por ambiente, cada um com sua própria URL e chaves, e deixe o CI escolher o destino:
| Meio Ambiente | Projeto | Implantado quando |
|---|---|---|
| Desenvolvimento | um por desenvolvedor ou compartilhado | sob demanda, de uma filial |
| Encenação | my-app-staging | cada push para main |
| Produção | my-app | uma tag de lançamento, após a aprovação nos testes de preparação |
Armazene AURA_PROJECT_URL e AURA_SERVICE_ROLE_KEY por ambiente GitHub e defina os segredos de cada função separadamente em cada projeto. Nada é compartilhado entre projetos.