ANÚNCIO

~/questoes/devops

Qual é a principal responsabilidade do handler em uma função Lambda Golang?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Como subir sua primeira AWS Lambda com Golang
Para fixar

O Handler em AWS Lambda com Golang

Conceito central

O handler é a função principal que recebe eventos de entrada em formato JSON e retorna uma resposta. Ele funciona como o ponto de entrada da sua Lambda, processando dados e devolvendo um resultado que a AWS entrega ao chamador.

Por que essa resposta faz sentido

O handler recebe eventos de entrada (geralmente JSON), executa a lógica de negócio necessária e retorna uma resposta formatada. É responsável por transformar input em output de forma confiável e eficiente.

Armadilhas comuns

  • Confundir o handler com as configurações da função Lambda no console AWS. Lembre-se: handler é código que executa lógica, configurações são metadados da função.
  • Pensar que o handler gerencia segurança e autenticação. Essas responsabilidades pertencem às políticas IAM e não ao código do handler.
  • Achar que o handler precisa fazer logging manual de tudo. CloudWatch Logs já captura outputs automaticamente; você só registra o que é importante para debug.

Entenda as alternativas

A

Validar credenciais e gerenciar permissões é função das políticas IAM e do IAM Access Control, não do handler. O handler assume que já está autorizado a executar.

B

Essa é a responsabilidade exata do handler. Ele recebe um evento JSON, processa a lógica necessária (cálculos, chamadas a banco de dados, etc.) e retorna uma resposta adequada ao cliente.

C

Monitorar e registrar chamadas de API é responsabilidade do CloudWatch Logs e X-Ray, ferramentas de observabilidade. O handler pode fazer chamadas, mas não é sua responsabilidade primária registrá-las.

D

Configurar variáveis de ambiente e timeout é feito na criação e configuração da função Lambda no console AWS ou via Infrastructure as Code, não dentro do handler.

Dica prática: Ao criar seu primeiro handler em Golang, use o pacote `github.com/aws/aws-lambda-go/lambda` e siga o padrão: receber um evento tipado (ou genérico), processar dados, retornar resposta ou erro. Teste localmente com eventos JSON de exemplo antes de fazer deploy.

Revise pensando: Se você precisa armazenar uma senha de banco de dados que a Lambda vai usar, isso deveria estar no handler ou em outro lugar?