Curso
Um dos serviços mais importantes da AWS para entender é o AWS Lambda, um serviço de computação sem servidor que executa códigos em resposta a eventos e gerencia automaticamente os recursos subjacentes.
À medida que a adoção do Lambda cresce, é comum encontrar perguntas sobre o AWS Lambda em entrevistas técnicas.
Este guia simplifica a preparação para entrevistas sobre o AWS Lambda, fornecendo uma lista selecionada de perguntas e respostas. A gente fala do básico e também mergulha em cenários mais avançados e práticos.
Se você quiser saber mais sobre a AWS, dá uma olhada nesse curso sobre Tecnologia e Serviços em Nuvem da AWS.
Por que a AWS?
Antes de ver as perguntas e respostas da entrevista, é importante entender por que a AWS Nuvem é a principal plataforma usada — isso em si pode ser uma pergunta na entrevista.
Vamos começar analisando o gráfico a seguir:

Fonte (Statista)
O gráfico mostra como a AWS mandou bem no mercado global de serviços de infraestrutura em nuvem no segundo trimestre de 2023. Com 32% do mercado, a AWS é a líder, bem à frente da Microsoft Azure, que tem 22% do mercado. Embora outros grandes players, como Google Nuvem (11%) e Alibaba Nuvem (4%), contribuam para o mercado, suas participações são insignificantes em comparação com a AWS e o Azure.
A receita total gerada pelos serviços de infraestrutura em nuvem no segundo trimestre de 2023, que foi de US$ 65 bilhões, mostra ainda mais como esse mercado está ficando cada vez mais importante e significativo financeiramente. A posição de liderança da AWS nesse setor em expansão reforça sua importância estratégica para empresas que buscam soluções em nuvem confiáveis e escaláveis.
Se você quiser saber mais sobre como os diferentes provedores de nuvem se comparam, dê uma olhada nesta folha de dicas sobre a comparação de serviços da AWS, Azure e GCP.
Embora os aspectos financeiros sejam importantes, o apelo da AWS vai além da participação no mercado, abrangendo uma ampla seleção de serviços, confiabilidade, escalabilidade, alcance global, segurança robusta, inovação contínua e uma comunidade solidária. Esses fatores juntos fazem com que o conhecimento em AWS seja uma habilidade super procurada na indústria de tecnologia, abrindo várias oportunidades de carreira para quem domina essa plataforma de nuvem líder.
Vamos dar uma olhada em algumas perguntas de entrevista!
Torne-se um engenheiro de dados
Perguntas básicas para entrevistas sobre AWS Lambda
Vamos começar com o básico. Se você é novo no AWS Lambda ou só quer dar uma atualizada, esses fundamentos vão te preparar para um mergulho mais profundo nas capacidades do Lambda.
1. O que é o AWS Lambda?
O AWS Lambda é um serviço de computação sem servidor que permite executar código sem precisar provisionar ou gerenciar servidores. O Lambda só executa o código quando é preciso e se adapta automaticamente, de algumas solicitações por dia a milhares por segundo.
2. Quais são os principais componentes de uma função Lambda?
Os principais componentes de uma função Lambda são:
- Responsável: Esse é o ponto de entrada da nossa função, um método no nosso código que processa o evento de invocação. Pense nisso como a função “principal” do nosso código Lambda.
- Evento: Esses são os dados de entrada no formato JSON que fazem a função funcionar. Ele traz informações sobre o que iniciou a chamada da função.
- Context: É um objeto que tem informações de tempo de execução sobre o ambiente de execução da função. Inclui detalhes como nome da função, versão, limites de memória, ID da solicitação e tempo restante de execução.
- Variáveis de ambiente: São pares de chave-valor que você pode definir para configurar o comportamento da sua função Lambda sem mexer no código em si. Eles costumam ser usados para guardar chaves API, credenciais de banco de dados ou outras configurações.
3. Quais idiomas o Lambda suporta?
O Lambda dá suporte nativo para Node.js, Python, Ruby, Java, Go, C# e PowerShell. Isso quer dizer que a gente pode escrever nossas funções Lambda direto nessas linguagens, sem precisar de nenhuma configuração extra.
Além disso, o Lambda permite usar tempos de execução personalizados, dando flexibilidade para empacotar nosso código de função e dependências em uma imagem de contêiner. Isso permite o suporte para praticamente qualquer linguagem de programação, o que nos deixa escolher a ferramenta que melhor atende às nossas necessidades.
4. Como criar uma função Lambda?
Tem várias maneiras de criar funções Lambda:
|
Método |
Descrição |
Ideal para |
|
Console Lambda |
Escreva código direto no editor do navegador. |
Funções simples, testes rápidos |
|
Pacote de implantação |
Empacote o código e as dependências em um arquivo ZIP e faça o upload. |
Projetos maiores, funções complexas |
|
Imagem do contêiner |
Função de pacote como uma imagem de contêiner Docker. |
Tem tempos de execução personalizados e configurações específicas? |
|
Infraestrutura como Código |
Defina funções e recursos em código declarativo usando AWS SAM, CloudFormation ou CDK. |
Gerenciando aplicativos complexos sem servidor, automação |
5. Quais são as diferentes maneiras de chamar uma função Lambda?
A gente pode chamar funções Lambda de várias maneiras:
- Invocação síncrona: O cliente espera a função terminar e mandar uma resposta.
- Chamada assíncrona: O cliente não precisa ficar esperando por uma resposta — o Lambda já executa a função em segundo plano.
- Mapeamento da fonte do evento: O Lambda automaticamente pesquisa serviços como o DynamoDB ou o Kinesis e chama funções com base em eventos.
- Outros métodos: Isso inclui API Gateway, AWS SDKs ou invocações programadas via Amazon EventBridge.
Perguntas intermediárias para entrevistas sobre AWS Lambda
1. Como podemos implantar dependências junto com o código Lambda?
Tem algumas opções pra empacotar dependências com código Lambda:
- Inclusão direta: Para linguagens interpretadas, podemos colocar os arquivos de dependência junto com o nosso código de função no pacote de implantação .zip.
- Camadas Lambda: Para linguagens compiladas ou dependências maiores, podemos usar camadas Lambda para empacotar e compartilhar dependências comuns entre funções de forma separada.
- Imagens de contêineres: Também podemos empacotar dependências em imagens de contêiner junto com o código da função Lambda e um tempo de execução personalizado.
2. Como podemos otimizar o desempenho das funções Lambda?
Temos várias opções para otimizar as funções Lambda:
- Alocação de memória: Escolher o tamanho certo de memória é essencial para equilibrar custo e desempenho. Ferramentas como o AWS Lambda Power Tuning podem ajudar a encontrar a configuração ideal.
- Tamanho da embalagem: Pacotes de funções menores fazem com que as inicializações a frio sejam mais rápidas (o tempo que uma função Lambda leva para inicializar na primeira vez que é chamada). Minimize o tamanho do pacote removendo dependências desnecessárias e comprimindo o código.
- Lambda SnapStart: Esse recurso pré-inicializa ambientes de função, reduzindo bastante o tempo de inicialização a frio para tempos de execução específicos.
- Concorrência provisionada: Configure a simultaneidade provisionada para manter as instâncias da função ativas, garantindo tempos de resposta consistentes para cargas de trabalho críticas.
- Limites de tempo e limites de simultaneidade: Defina tempos limite e concorrência reservada adequados para evitar funções descontroladas e manter um ambiente Lambda estável.
3. Que ferramentas você pode usar pra monitorar e depurar funções Lambda?
O Lambda manda automaticamente métricas para o Amazon CloudWatch, incluindo número de solicitações, latência, taxas de erro e muito mais.
A gente pode usar o CloudWatch Logs pra acessar os logs que o nosso código de função e o tempo de execução do Lambda geram.
Pra rastrear e resolver problemas de desempenho de aplicativos Lambda distribuídos, a gente pode usar o AWS X-Ray.
4. Pra que servem as extensões Lambda?
As extensões Lambda nos permitem melhorar nossas funções ao integrar ferramentas de monitoramento, observabilidade, segurança e governança.
As extensões podem ser executadas como processos separados no ambiente de execução para capturar informações de diagnóstico ou enviar dados para destinos personalizados.
Exemplos incluem a extensão Datadog para métricas e rastreamentos e a extensão AWS AppConfig para atualizações dinâmicas de configuração.
5. O que é um mapeamento de fonte de evento?
Um mapeamento de fonte de eventos é um recurso Lambda que lê itens de uma fonte de eventos e chama uma função.
A gente pode usar mapeamentos de fonte de eventos pra processar itens de fluxos do Amazon DynamoDB, fluxos do Amazon Kinesis, filas do Amazon MQ, Apache Kafka autogerenciado, filas do Amazon SQS e muito mais.
O Lambda tem um mecanismo de polling pra ler lotes de registros das fontes de eventos e chamar uma função.
Perguntas avançadas para entrevistas sobre AWS Lambda
1. Como você controla o acesso às funções Lambda?
O AWS Lambda usa o IAM (Identity and Access Management) para controlar o acesso em dois níveis:
- As políticas baseadas em recursos especificam quais contas, serviços e recursos da AWS têm permissão para invocar a função.
- A função de execução da função determina quais serviços e recursos da AWS o código da função pode acessar. Seguindo o princípio do privilégio mínimo, essas políticas devem ser o mais restritivas possível, mas ainda assim permitir que a função execute as tarefas pretendidas.
2. Como você pode minimizar as partidas a frio no Lambda?
As inicializações a frio acontecem quando o Lambda precisa inicializar um novo ambiente de execução para processar uma solicitação de invocação. Para minimizar as inicializações a frio e melhorar a capacidade de resposta da nossa função Lambda, podemos usar várias estratégias:
- Use o SnapStart: Esse recurso (disponível para certos tempos de execução) permite manter ambientes inicializados, reduzindo bastante o tempo de inicialização para chamadas futuras.
- Habilite a simultaneidade provisionada: Mantendo um conjunto de ambientes inicializados prontos, podemos eliminar inicializações a frio para cargas de trabalho previsíveis.
- Otimize o tamanho do pacote: Reduzir o tamanho do nosso pacote de funções removendo dependências desnecessárias e otimizando o código pode acelerar o processo de inicialização.
- Escolha do idioma: Escolher linguagens como Go ou Rust, que são conhecidas por terem tempos de inicialização mais rápidos do que as linguagens JVM, também pode ajudar a diminuir os atrasos na inicialização a frio.
- Reutilização do contexto de execução: Manter nosso código da função Lambda separado da lógica de configuração inicial nos permite reutilizar o contexto de execução entre invocações, reduzindo ainda mais a sobrecarga.
3. Quais são algumas das melhores práticas comuns de segurança de API para o Lambda?
Ao expor funções Lambda por meio do API Gateway, algumas práticas recomendadas de segurança incluem:
- Usando autorizadores IAM ou Lambda para autenticar e autorizar solicitações.
- Ativando os pools de usuários do Amazon Cognito para gerenciamento de usuários.
- Definindo políticas de recursos para permitir ou negar acesso com base nas propriedades da solicitação, como IPs de origem.
- Configurando o mTLS para uma comunicação segura entre cliente e servidor.
- Usando o AWS WAF para se proteger contra ataques comuns à web que visam APIs.
4. Quais são as diferenças entre imagens de contêiner Lambda e pacotes de implantação .zip?
As imagens de contêiner Lambda permitem empacotar o código da função e as dependências em um formato de contêiner compatível com OCI. Vamos comparar imagens de contêiner com pacotes de implantação .zip:
|
Recurso |
Imagens de contêineres |
Pacotes de implantação .zip |
|
Flexibilidade de tempo de execução |
Traz o nosso próprio tempo de execução (qualquer linguagem ou versão) |
Limitado aos tempos de execução pré-definidos do Lambda |
|
Tamanho da implantação |
Até 10 GB |
Até 250 MB (descompactado) |
|
Implantação e Inicialização a frio |
Implantações mais lentas e latência de inicialização a frio potencialmente mais alta |
Implantações mais rápidas e latência de inicialização a frio geralmente mais baixa |
|
Ferramentas e Fluxo de trabalho |
Integração perfeita com nossas ferramentas e fluxos de trabalho de contêineres já existentes |
Pode precisar de ferramentas extras para gerenciar dependências e fazer a implantação. |
|
Ideal para |
Aplicativos com muitas dependências ou requisitos de tempo de execução personalizados |
Aplicativos menores e aqueles que funcionam com os tempos de execução pré-definidos do Lambda |
5. As funções Lambda podem chamar outras funções Lambda?
Sim, as funções Lambda podem chamar outras funções direto usando o AWS SDK. Os casos de uso mais comuns incluem orquestração de funções, juntar resultados de várias funções e distribuir o processamento de eventos.
Quando uma função Lambda chama outra, a política baseada em recursos da função chamada deve dar acesso explicitamente para permitir a chamada da função que está chamando.
Perguntas práticas para entrevistas sobre AWS Lambda
1. Como você implementa uma API REST simples usando Lambda e API Gateway?
A gente pode implementar uma API REST simples usando o Lambda e o API Gateway seguindo esses passos:
- Crie uma função Lambda n : Crie uma função Lambda que receba entradas do API Gateway como um objeto de evento e retorne um objeto de resposta com dados e códigos de status.
- Crie um API Gateway: No API Gateway, criamos uma nova API REST com um recurso e um método que correspondem ao caminho da API e ao método HTTP.
- Configure a integração: Configuramos o tipo de integração do método como proxy Lambda e especificamos a função a ser invocada.
- Implemente a API: Implemente a API para criar um endpoint de URL público para acesso.
- Teste tudo direitinho: A gente pode usar ferramentas como cURL ou Postman pra garantir que a API funcione direitinho, com a função Lambda cuidando das solicitações e devolvendo as respostas certinhas.
2. Como você configura uma função Lambda para processar eventos de um bucket S3?
A gente pode configurar uma função Lambda pra processar eventos de um bucket S3 seguindo os passos abaixo:
- Criamos uma função Lambda com as permissões certas para acessar o bucket S3.
- No console S3, a gente configura uma notificação de evento no bucket de origem.
- A gente escolhe os tipos de eventos que vão acionar a notificação, tipo criação ou exclusão de objetos.
- Especificamos a função Lambda como o destino da notificação.
- Testamos fazendo ações no bucket S3 que combinam com os tipos de eventos configurados.
- A gente verifica se a função Lambda é chamada com um evento que tem os detalhes da ação do S3.
3. Como você configura uma função Lambda para gravar dados em uma tabela DynamoDB?
A gente pode configurar uma função Lambda para gravar dados em uma tabela DynamoDB seguindo estes seis passos:
- A gente cria uma tabela DynamoDB com uma chave primária adequada e todos os índices secundários necessários.
- Criamos uma função IAM para a função Lambda com permissões para acessar o DynamoDB.
- Criamos uma função Lambda e anexamos a função IAM.
- Usamos o SDK do DynamoDB para criar uma instância de cliente com o nome da tabela.
- Usamos o método `
put_item` para gravar itens na tabela, especificando os atributos-chave e outros campos. - Teste a função com eventos de amostra e use consultas DynamoDB para ver se os dados estão sendo gravados direitinho.
4. Como você implementa uma função Lambda programada?
A gente pode implementar uma função Lambda programada seguindo esses passos:
- Crie uma função Lambda para fazer o que você quer em um horário programado.
- Abra o console do Amazon EventBridge e crie uma nova regra.
- Defina uma expressão de programação para a regra usando a sintaxe de taxa ou cron.
- Escolha a função Lambda como alvo da regra.
- Salve a regra e teste esperando pelo próximo evento programado.
- Confira se a função tá funcionando direitinho nas métricas e nos registros do CloudWatch.
5. Como você muda o tráfego gradualmente para uma nova versão de uma função Lambda?
Para mudar o tráfego para uma nova versão de uma função Lambda, nós:
- Publique uma nova versão da função Lambda com o código atualizado.
- Crie um alias que aponte para a versão estável mais antiga.
- Atualize o alias para dividir o tráfego entre as versões antiga e nova usando pesos (por exemplo, 90/10).
- Ajustar gradualmente os pesos para transferir mais tráfego para a nova versão enquanto monitora as métricas.
- Quando estiver tudo certo, atualize o alias pra mandar 100% do tráfego pra nova versão.
- Repita o processo para a próxima atualização da função, considerando a versão anterior como a nova versão estável.
Conclusão
Essas perguntas comuns em entrevistas sobre o AWS Lambda testam o entendimento dos candidatos sobre os conceitos básicos do Lambda, as melhores práticas e os padrões de uso prático.
É importante lembrar que a experiência prática na criação e operação de aplicativos Lambda é super importante para consolidar esses conceitos.
Para saber mais, confira estes dois cursos:
Obtenha a certificação para a função de engenheiro de dados dos seus sonhos
Nossos programas de certificação ajudam você a se destacar e a provar que suas habilidades estão prontas para o trabalho para possíveis empregadores.


A Zoumana desenvolve ferramentas de IA LLM para ajudar as empresas a realizar due diligence de sustentabilidade e avaliações de risco. Anteriormente, ele trabalhou como cientista de dados e engenheiro de aprendizado de máquina na Axionable e na IBM. Zoumana é o fundador da plataforma de tecnologia educacional de aprendizagem entre pares ETP4Africa. Ele escreveu mais de 20 tutoriais para o DataCamp.
