Build, deploy e testes

O SDK atual não cobre apenas runtime. Ele também participa do empacotamento do projeto, da estratégia de logging e dos testes locais.

Build e empacotamento

O pacote público expõe tooling de build em @tunnelhub/sdk/building.

Esse fluxo lê a configuração do projeto, usa tunnelhub.yml como referência e normalmente gera um artefato em zip para deploy.

Na prática, isso ajuda a padronizar:

  • entrypoint;

  • runtime;

  • memória e timeout;

  • arquivos incluídos no bundle;

  • artefato final esperado pela CLI.

Estratégia de logging

O SDK escolhe entre logging em tempo real e logging em lote conforme o volume e o perfil da execução.

Em alto nível:

  • cargas pequenas tendem a usar logging em tempo real;

  • cargas muito grandes tendem a usar modo em lote;

  • fluxos podem ajustar limiares protegidos para adaptar o comportamento.

Esse desenho melhora custo e performance sem exigir lógica manual em cada integração.

Em flows de maior volume, o SDK ajusta o comportamento entre realtime e lote para evitar custo operacional excessivo sem perder rastreabilidade útil.

Observabilidade

Os logs da automação alimentam as telas de monitoramento da plataforma. A qualidade dos metadados e das mensagens impacta diretamente a capacidade de suporte e investigação.

Se a integração conversa com APIs externas, vale combinar esse modelo com setupInterceptor() quando o ganho investigativo justificar o aumento de detalhe.

Testes locais

Para testes, o SDK expõe o flag:

Esse modo é recomendado para suites Jest e cenários de mock de serviços AWS ou chamadas externas.

Modo verboso

Quando necessário, você pode habilitar:

Isso ajuda durante desenvolvimento e depuração local.

Recomendações

  • mantenha tunnelhub.yml alinhado ao runtime real do projeto;

  • gere o artefato antes de chamar deploy-automation;

  • teste os utilitários e o fluxo separadamente;

  • faça mock de dependências AWS e integrações externas;

  • trate mensagens de erro como parte do contrato operacional;

  • valide os metadados antes de publicar uma nova versão.

Troubleshooting comum

  • parâmetro obrigatório ausente: valide AutomationParameter.getRequiredParameter() e o cadastro no produto;

  • Data Store ou Sequence não encontrado: confirme código, ambiente e associação correta;

  • erro de metadata: revise labels reservadas e tipos inválidos;

  • artefato inconsistente: confira tunnelhub.yml, entrypoint e caminho do zip antes do deploy.

Last updated