AWS Serverless: API Gateway, Lambda e uma lista de itens para verificar antes de ir para produção

Image for post
Image for post

Créditos da Imagem

Isenção de responsabilidade: esta é uma lista longa, você não precisa marcar todos os itens antes de ir para produção. Pense neles como uma escada, quanto mais crítico for o sistema, mais alto você deve tentar subir.

Observabilidade

  1. Ative o monitoramento detalhado para obter métricas por método (por exemplo, latência para GET /index). Sem isso, o CloudWatch relata apenas métricas agregadas para todos os seus pontos da API. O que é quase inútil… Não há como descobrir qual endpoint está passando por um tempo de resposta lento ou com alta taxa de erros.

Como você pode ver, você precisa configurar muitos alarmes! Para facilitar sua vida, criei uma macro no CloudFormation que pode gerar automaticamente os alarmes de latência e erros mencionados acima.Ele também suporta outros recursos, como Lambda, SQS e Step Functions.

Segurança

  1. Revise a configuração de limitação de taxa padrão. A configuração padrão deixa você vulnerável a ataques de negação de serviço contra toda a região. Escolha um limite de taxa sensível para cada método.

Performance

  1. Como regra geral, armazene em cache o máximo que puder. Você pode implementar o cache em diferentes camadas, consulte este post para obter mais detalhes. Por padrão, tente armazenar em cache na borda com o CloudFront sempre que possível.

Resiliência

  1. Configure múltiplas regiões, ativo-ativo. Para se proteger contra falhas em toda a região na AWS, considere optar por uma configuração ativo-ativo de várias regiões. Dê uma olhada neste post para obter mais detalhes.

Testando

  1. Teste a API de ponta a ponta. Não pare de testar as funções localmente com mocks e stubs. Você deve testar a API de ponta a ponta falando com ela por meio de sua interface HTTP e garantir que tudo funcione realmente, incluindo configurações de permissões e validação de solicitação.

Documentação

  1. Publique a especificação Swagger/API. Isso ajuda a compartilhar informações sobre seu serviço e pode ser feito como parte do seu processo de integração contínua. Para fazer isso, você pode chamar getExport com o ID da API.

Gostou deste artigo? Apoie-me no Patreon e obtenha ajuda direta por meio de um canal privado no Slack ou por 1–2–1.

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store