Quiz de Validação - MÓDULO 12
Este quiz de 30 perguntas permite validar seus conhecimentos sobre troubleshooting Lambda antes de passar para o laboratório prático.
Pergunta 1
Onde encontrar os logs de uma função Lambda?
A) No S3
B) No CloudWatch Logs, grupo /aws/lambda/nome-funcao
C) Na instância EC2
D) No DynamoDB
Ver resposta
Resposta: B
Os logs do Lambda são enviados automaticamente para o CloudWatch Logs no grupo /aws/lambda/nome-da-funcao. Cada container de execução cria um log stream. Verifique se a função tem permissões para CloudWatch Logs.
Pergunta 2
O que significa o erro "Task timed out"?
A) A conexão de rede expirou
B) A função excedeu o timeout configurado
C) O trigger expirou
D) A API expirou
Ver resposta
Resposta: B
"Task timed out after X seconds" significa que a função não terminou dentro do tempo configurado (timeout). Soluções: aumente o timeout (máx. 15 min), otimize o código ou descubra por que a execução está lenta (espera de rede, banco de dados).
Pergunta 3
Como aumentar o timeout de uma função Lambda?
A) Não é configurável
B) Na configuração da função, altere o parâmetro Timeout (máx. 15 min)
C) Somente via código
D) Contatando a AWS
Ver resposta
Resposta: B
O timeout é configurável nos parâmetros da função: console, CLI ou template CloudFormation/SAM. O valor máximo é 900 segundos (15 minutos). Ajuste conforme o tempo real necessário mais uma margem.
Pergunta 4
O que indica o erro "out of memory"?
A) O disco está cheio
B) A função excedeu a memória alocada
C) O CloudWatch está sem armazenamento
D) O S3 está cheio
Ver resposta
Resposta: B
"Runtime exited with error: signal: killed" ou "Memory Size: X MB Max Memory Used: X MB" indica que a função usou toda a memória. Solução: aumente a memória alocada ou otimize o código para usar menos memória.
Pergunta 5
Como saber quanta memória uma função está usando?
A) Não é mensurável
B) Nos logs CloudWatch "REPORT" ou nas métricas "Max Memory Used"
C) Via código
D) No console EC2
Ver resposta
Resposta: B
Cada invocação gera uma linha REPORT nos logs: "Memory Size: 128 MB Max Memory Used: 85 MB". A métrica CloudWatch "MaxMemoryUsed" também mostra esse valor. Se estiver próximo do limite, aumente a memória.
Pergunta 6
O que significa o erro "Access Denied" no Lambda?
A) Acesso negado ao console
B) A função não tem permissões IAM para acessar um recurso
C) A senha está incorreta
D) O VPC está bloqueado
Ver resposta
Resposta: B
"Access Denied" significa que o role IAM da função não tem as permissões necessárias. Verifique se o role tem as policies para acessar S3, DynamoDB, SQS ou outro serviço usado pelo código.
Pergunta 7
Como diagnosticar erros de permissão no Lambda?
A) Esperar que desapareçam
B) Verificar os logs para o erro exato e ajustar as policies IAM do role
C) Recriar a função
D) Contatar a AWS
Ver resposta
Resposta: B
Leia os logs do CloudWatch para identificar o recurso e a ação negados. Verifique o role IAM da função. Adicione a policy necessária (ex: s3:GetObject). Teste novamente. Use o IAM Policy Simulator para validar.
Pergunta 8
Uma função Lambda em um VPC não consegue acessar a Internet. Por quê?
A) Isso é normal
B) Lambda em VPC requer um NAT Gateway para acesso à Internet
C) O Security Group está bloqueando
D) Os logs não funcionam
Ver resposta
Resposta: B
Lambda em VPC usa ENIs em subnets privadas. Para acessar a Internet, configure um NAT Gateway em uma subnet pública e uma rota 0.0.0.0/0 para o NAT na tabela de rotas das subnets do Lambda.
Pergunta 9
Uma função Lambda em um VPC não consegue acessar o DynamoDB. O que fazer?
A) Remover o VPC
B) Usar um VPC Endpoint para DynamoDB ou configurar um NAT Gateway
C) Mudar de região
D) Aumentar a memória
Ver resposta
Resposta: B
DynamoDB é um serviço público. Um Lambda em VPC precisa de um NAT Gateway (caro) ou de um VPC Endpoint Gateway para DynamoDB (gratuito e recomendado). O VPC Endpoint permite acesso privado sem passar pela Internet.
Pergunta 10
O que significa o erro "Handler not found"?
A) O handler está ausente
B) O nome do handler configurado não corresponde à função no código
C) O arquivo não existe
D) Memória insuficiente
Ver resposta
Resposta: B
Esse erro significa que o Lambda não encontra o handler especificado. Verifique: o formato (arquivo.metodo), o nome do arquivo (ex: lambda_function.py), o nome do método e se o arquivo está na raiz do pacote.
Pergunta 11
Como é formatado o handler em Python?
A) handler.py
B) arquivo.funcao (ex: lambda_function.lambda_handler)
C) lambda.handler
D) handler()
Ver resposta
Resposta: B
Em Python, o formato é: nome_arquivo.nome_funcao. O padrão é lambda_function.lambda_handler, ou seja, um arquivo lambda_function.py com uma função def lambda_handler(event, context). Ajuste conforme sua estrutura.
Pergunta 12
O que significa o erro "Module not found"?
A) O módulo AWS está ausente
B) Uma dependência requerida pelo código não está incluída no pacote
C) Python não está instalado
D) O handler está incorreto
Ver resposta
Resposta: B
"Unable to import module" ou "Module not found" significa que uma biblioteca usada no código não está no pacote de deploy. Inclua as dependências no ZIP ou use Lambda Layers.
Pergunta 13
Como incluir dependências Python no Lambda?
A) Instalar globalmente
B) pip install em uma pasta, incluir no ZIP de deploy ou usar Layers
C) Incluídas automaticamente
D) Via console
Ver resposta
Resposta: B
Crie uma pasta, instale as dependências: pip install requests -t ./package/, adicione seu código, compacte tudo. Ou use Lambda Layers para dependências compartilhadas. SAM e CDK automatizam esse processo.
Pergunta 14
O que é "cold start" e como detectá-lo?
A) Um bug do Lambda
B) Atraso de inicialização visível pelo "Init Duration" nos logs REPORT
C) Um erro de timeout
D) Um problema de memória
Ver resposta
Resposta: B
O cold start aparece nos logs: "Init Duration: X ms" só está presente em cold starts. A métrica "Duration" inclui esse tempo. As invocações seguintes (warm) não têm Init Duration.
Pergunta 15
Uma função retorna erro 502 via API Gateway. O que verificar?
A) Apenas o API Gateway
B) Os logs do Lambda para o erro real, o formato da resposta do Lambda
C) Route 53
D) CloudFront
Ver resposta
Resposta: B
502 do API Gateway geralmente significa que o Lambda retornou uma resposta mal formatada ou falhou. Verifique os logs do Lambda para o erro. Certifique-se de que a resposta segue o formato esperado pelo API Gateway (statusCode, body, headers).
Pergunta 16
Qual formato de resposta Lambda o API Gateway espera?
A) Texto simples
B) JSON com statusCode, headers, body
C) XML
D) HTML
Ver resposta
Resposta: B
O formato esperado é um objeto JSON com statusCode (200), headers (Content-Type: application/json) e body (uma string JSON). O body deve ser uma string, não um objeto. Uma resposta mal formatada causa erro 502.
Pergunta 17
Como debugar uma função Lambda em produção?
A) Conectar ao servidor
B) Analisar os logs do CloudWatch, ativar o X-Ray para tracing
C) Alterar o código em produção
D) Esperar reclamações
Ver resposta
Resposta: B
Use CloudWatch Logs para mensagens de erro. Ative o AWS X-Ray para rastrear as requisições entre serviços (latência, erros). O CloudWatch Insights permite consultas nos logs. Adicione logging estruturado no código.
Pergunta 18
O que é o AWS X-Ray para Lambda?
A) Uma radiografia dos servidores
B) Um serviço de tracing distribuído que mostra o caminho das requisições
C) Um antivírus
D) Uma ferramenta de backup
Ver resposta
Resposta: B
O AWS X-Ray rastreia as requisições através do Lambda e outros serviços (API Gateway, DynamoDB, S3). Ele mostra um mapa dos serviços, latências e ajuda a identificar gargalos e erros.
Pergunta 19
Uma função falha de forma intermitente. O que verificar?
A) Apenas o código
B) Os logs para padrões, timeouts, cold starts, throttles
C) Nada, é normal
D) O Security Group
Ver resposta
Resposta: B
Falhas intermitentes podem ser causadas por: timeouts (recursos externos lentos), cold starts (falha na inicialização), throttling (limites de concorrência), recursos externos indisponíveis ou conexões fechadas (connection pooling).
Pergunta 20
O que é "throttling" no Lambda?
A) Limitação de velocidade do código
B) Recusa de invocações porque o limite de concorrência foi atingido
C) Compressão de dados
D) Limitação de memória
Ver resposta
Resposta: B
O throttling ocorre quando a função atinge seu limite de concorrência (reservado ou regional). As invocações adicionais são recusadas com erro 429 (TooManyRequestsException). Aumente os limites ou implemente uma fila.
Pergunta 21
Como detectar se o Lambda está sendo throttled?
A) Impossível detectar
B) Métrica CloudWatch "Throttles", erro 429 nos logs do chamador
C) Via código
D) No EC2
Ver resposta
Resposta: B
A métrica CloudWatch "Throttles" conta as invocações recusadas. O chamador recebe erro 429 TooManyRequestsException. Monitore essa métrica e crie alarmes para detectar problemas de capacidade.
Pergunta 22
O que é a Dead Letter Queue (DLQ) e quando é usada?
A) Uma fila de mensagens mortas
B) Um destino para eventos que falharam após todos os retries (invocação assíncrona)
C) Uma fila de backup
D) Uma fila de prioridade
Ver resposta
Resposta: B
A DLQ recebe eventos que falharam após os retries automáticos (2 para async). Configure uma SQS ou SNS como DLQ. Analise essas mensagens para entender e corrigir as falhas.
Pergunta 23
Como configurar retries para Lambda?
A) Somente via código
B) Depende do tipo de invocação: configurável para async, automático para streams
C) Sem retries
D) Via IAM
Ver resposta
Resposta: B
Invocações async: 2 retries por padrão (configurável 0-2), com backoff exponencial. Streams (Kinesis, DynamoDB): retry até expirar os dados ou sucesso. Síncrono: sem retry automático, o chamador gerencia.
Pergunta 24
Uma função Lambda está muito lenta. O que verificar primeiro?
A) O nome da função
B) Os logs REPORT para Duration, Memory Used e chamadas externas
C) O trigger
D) A região
Ver resposta
Resposta: B
Analise os logs REPORT: Duration (tempo total), Billed Duration, Memory Used. Se estiver próximo do limite de memória, aumente. Verifique as chamadas externas (banco de dados, API) que podem estar lentas. Use o X-Ray para detalhes.
Pergunta 25
Aumentar a memória do Lambda afeta a velocidade?
A) Não
B) Sim, mais memória = mais CPU = execução potencialmente mais rápida
C) Fica mais lento
D) Apenas para Java
Ver resposta
Resposta: B
O CPU é alocado proporcionalmente à memória. Com 1.769 MB, você obtém 1 vCPU completo. Mais memória significa mais poder de processamento, o que pode reduzir o tempo de execução e até mesmo o custo total.
Pergunta 26
Como testar uma função Lambda localmente?
A) Impossível
B) AWS SAM CLI, LocalStack ou executando o arquivo Python/Node diretamente
C) Apenas em produção
D) Via EC2
Ver resposta
Resposta: B
Teste localmente com: AWS SAM CLI (sam local invoke), LocalStack para emular Lambda ou execute sua função diretamente com um evento mock. Isso acelera o ciclo de desenvolvimento antes do deploy.
Pergunta 27
O que significa o erro "ECONNREFUSED" no Lambda?
A) Conexão recusada pelo Lambda
B) A função não consegue se conectar a um serviço externo (endpoint inacessível)
C) Erro de permissões
D) Timeout do Lambda
Ver resposta
Resposta: B
ECONNREFUSED significa que a conexão foi recusada pelo endpoint de destino. Causas: URL/porta errada, serviço não iniciado, Security Group bloqueando, problema de roteamento no VPC ou serviço externo fora do ar.
Pergunta 28
O que significa o erro "socket timeout" no Lambda?
A) O socket está quebrado
B) A conexão com um serviço externo está demorando demais (sem resposta)
C) O Lambda expirou
D) O VPC está mal configurado
Ver resposta
Resposta: B
Socket timeout significa que o serviço externo não respondeu dentro do tempo configurado no cliente HTTP. Causas: serviço lento ou sobrecarregado, problema de rede, Security Group/NACL bloqueando ou configuração errada do timeout do cliente.
Pergunta 29
Como ver os erros de uma função Lambda em tempo real?
A) Impossível
B) CloudWatch Logs Live Tail, CloudWatch Logs Insights ou aws logs tail
C) Via e-mail
D) No S3
Ver resposta
Resposta: B
Use o CloudWatch Logs Insights para consultas em tempo real, "Live Tail" no console para streaming dos logs ou aws logs tail /aws/lambda/nome-funcao --follow para acompanhar pelo CLI.
Pergunta 30
Qual a melhor prática para logging no Lambda?
A) Não fazer logs
B) Usar JSON estruturado, incluir requestId, níveis de log e contexto útil
C) Logar tudo
D) Apenas erros
Ver resposta
Resposta: B
Boas práticas: use JSON estruturado para facilitar consultas, inclua o requestId (context.aws_request_id) para rastreamento, use níveis (INFO, ERROR), logue o contexto útil sem dados sensíveis e evite logs excessivos (custo).
Resultado
Conte suas respostas corretas:
- 27-30: Excelente - Você domina troubleshooting Lambda
- 22-26: Bom - Alguns pontos para revisar
- 17-21: Médio - Releia o curso antes do laboratório
- Menos de 17: Insuficiente - Refaça o curso desde o início
Passe para o Lab Troubleshooting Lambda assim que atingir pelo menos 22 respostas corretas.