Boas Práticas Serverless
Um resumo condensado das 25 práticas serverless mais importantes para equipes Node.js na AWS Lambda - extraído de todas as páginas desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas serverless mais importantes para equipes Node.js na AWS Lambda - extraído de todas as páginas desta seção.
Duration p99 e taxa Errors por alias de funçãoHandlers sem estado: Sem estado de sessão na memória entre invocações - Noções Básicas de Serverless.
Externalize o estado: DynamoDB, RDS, ElastiCache, S3 - não variáveis globais para dados do usuário.
Reutilização de cliente na fase de inicialização: Clientes DynamoDB/S3/SSM no escopo do módulo - @aws-sdk v3.
Analise o env com Zod na inicialização: Falhe rapidamente em caso de configuração incorreta antes de receber tráfego.
Apenas handlers assíncronos: Sem handlers no estilo callback em novo código TypeScript - Padrões de Handler do Lambda.
callbackWaitsForEmptyEventLoop = false: Ao usar pools de banco de dados ou agentes de keep-alive HTTP.
Retorne 4xx, não lance exceções: Erros de validação não devem tentar invocações assíncronas novamente.
Consumidores SQS idempotentes: Deduplique com escritas condicionais do DynamoDB em messageId ou chave de negócio.
Falhas parciais de lote SQS: Relate batchItemFailures apenas para mensagens "poison".
Use importações modulares do SDK v3: Nunca adicione aws-sdk v2 a novos projetos.
Agrupe o código da aplicação com esbuild: Minificar + tree shake - Mitigação de Cold Start.
Alvo zip abaixo de 5-15 MB: Investigue o inchaço com o visualizador.
Runtime nodejs24.x: Corresponda ao Node 24 LTS local.
Prefira arm64 (Graviton): Benchmarking de dependências nativas na matriz CI.
Dimensionamento correto da memória: Mais memória concede mais CPU; acelera a inicialização e a execução.
Timeout a partir de p99 + margem: Inclua chamadas downstream; evite interrupções forçadas no meio da escrita.
VPC apenas quando necessário: Aceite o custo de cold start de ENI ou use RDS Proxy / Data API.
Concorrência provisionada em aliases: Não em $LATEST; controle de custos com políticas de autoescalonamento.
Logs JSON estruturados: Inclua awsRequestId e IDs de correlação de negócios.
Sem PII em logs: Redija corpos; registre apenas IDs.
Segredos do SSM/Secrets Manager: Armazenados em cache na inicialização; nunca em env em capturas de tela do console.
Adaptadores de framework apenas para migração: Planeje handlers enxutos para caminhos críticos - serverless-express / aws-lambda-fastify.
IaC para cada função: SAM, CDK ou Terraform - sem desvio de operações de clique.
Funções separadas por tipo de gatilho: HTTP vs SQS vs agendado - não multiplexe eventos não relacionados.
Revisite Lambda vs ECS trimestralmente: Tráfego estável pode ser mais barato no Fargate - Noções Básicas de Implantação de Plataforma.
Reutilize clientes AWS SDK e configuração analisada no escopo do módulo (fase de inicialização). Isso reduz a sobrecarga por invocação em todas as chamadas quentes.
Quando a latência p99, WebSockets, tempo de execução superior a 15 minutos, ou o custo base exceder contêineres sempre ativos em seu nível de tráfego.
Muitas funções pequenas quando os pacotes, timeouts ou permissões IAM diferem. Uma função com roteador interno apenas para pequenas APIs e protótipos.
Teste unitário de handlers com eventos fictícios. Teste de integração com SAM local ou implante em uma stack de desenvolvimento. Não confie apenas no botão de teste do console.
Não. Mesmas portas de qualidade e promoção de artefatos como contêineres - Boas Práticas de CI/CD.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (LTS Ativo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, e NestJS 11.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026