Cloud & IT Cert Prep · Aula

Funções do Lambda: ambientes de execução, acionadores e manipuladores

Escreva uma função do Lambda, escolha um ambiente de execução, configure memória e tempo limite e conecte-a a um evento do S3 ou a um acionador do API Gateway.

Aula 1 de 413 etapas

Funções do Lambda: ambientes de execução, acionadores e manipuladores é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que é o AWS Lambda?

O AWS Lambda é um serviço de computação sem servidor que executa seu código em resposta a eventos sem exigir que você provisione ou gerencie servidores. Você paga apenas pelo tempo de computação consumido — medido em milissegundos —, o que torna o Lambda extremamente econômico para cargas de trabalho esporádicas e orientadas por eventos. O Lambda aumenta automaticamente a escala de zero para milhares de execuções simultâneas com base nos eventos recebidos.

Ambientes de execução compatíveis

O Lambda oferece suporte a ambientes de execução gerenciados, incluindo Python, Node.js, Java, Go, Ruby, .NET e outros. AWS mantém esses ambientes de execução e aplica correções de segurança. Para linguagens ou versões de ambientes de execução que não têm suporte nativo, você pode fornecer um ambiente de execução personalizado por meio de um executável bootstrap ou empacotar sua função em uma imagem de contêiner (de até 10 GB), em vez de usar um pacote de implantação ZIP.

A função manipuladora do Lambda

Toda função do Lambda tem um manipulador — o ponto de entrada que seu código deve exportar. A AWS chama o manipulador com dois argumentos: o objeto evento (os dados de entrada do acionador) e um objeto de contexto (metadados sobre a invocação, como o nome da função, o tempo restante e o ID da solicitação). O manipulador retorna uma resposta que, dependendo do tipo de invocação, pode ser devolvida ao chamador.

# Python handler example
def lambda_handler(event, context):
    # event contains the trigger payload
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    print(f'Processing {key} from {bucket}')
    return {
        'statusCode': 200,
        'body': 'Processed successfully'
    }

Memória, tempo limite e armazenamento efêmero

O Lambda permite configurar a memória de 128 MB a 10.240 MB. A CPU é alocada proporcionalmente à memória: mais memória significa mais CPU. O tempo limite pode ser definido de 1 segundo a 15 minutos; se sua função exceder esse limite, o Lambda a encerra. Você também dispõe de armazenamento efêmero /tmp (512 MB por padrão, configurável até 10 GB) para arquivos temporários durante uma única invocação. Esse armazenamento não persiste entre invocações.

Invocação síncrona versus assíncrona

As funções do Lambda podem ser invocadas de forma síncrona (o chamador aguarda o resultado — usada pelo API Gateway e pelo ALB) ou assíncrona (o chamador não aguarda — usada por eventos do S3 e pelo SNS). No modo assíncrono, o Lambda tenta novamente as execuções com falha até duas vezes e pode encaminhar os eventos com falha para uma fila de mensagens não entregues (SQS ou SNS) ou para um barramento de eventos do EventBridge. Escolher o modo de invocação adequado afeta o projeto do tratamento de erros.

Acionadores comuns do Lambda

O Lambda se integra nativamente a dezenas de serviços da AWS como fontes de eventos (acionadores):

  • API Gateway / ALB: solicitações HTTP (síncronas)
  • S3: eventos de criação/exclusão de objetos (assíncronos)
  • Streams do DynamoDB / Kinesis: transmissão de registros (baseada em sondagem, síncrona)
  • SQS: mensagens da fila (baseada em sondagem)
  • SNS: notificações de tópicos (assíncronas)
  • EventBridge: eventos agendados ou personalizados
  • Registros do CloudWatch: filtros de assinatura de registros

Função de execução do IAM

Toda função do Lambda deve ter uma função de execução do IAM que conceda à função permissões para chamar outros serviços da AWS. Por exemplo, se sua função lê do S3 e grava no DynamoDB, a função de execução precisa das permissões s3:GetObject e dynamodb:PutItem. Siga o princípio do menor privilégio: conceda apenas as permissões de que sua função realmente precisa. A função de execução básica também deve incluir logs:CreateLogGroup, logs:CreateLogStream e logs:PutLogEvents para os registros do CloudWatch.

Pacotes de implantação e limites de tamanho

O Lambda aceita dois formatos de implantação: um arquivo ZIP (50 MB compactado, 250 MB descompactado), carregado diretamente ou por meio do S3, e uma imagem de contêiner (até 10 GB), armazenada no Amazon ECR. Os pacotes ZIP são mais rápidos de implantar e adequados para funções pequenas e camadas do Lambda. As imagens de contêiner são ideais para grandes conjuntos de dependências ou para equipes que já usam fluxos de trabalho baseados no Docker. Ambos os formatos podem usar os mesmos ambientes de execução e o mesmo padrão de manipulador.

# Deploy a ZIP package from S3
aws lambda update-function-code \
  --function-name 'MyFunction' \
  --s3-bucket 'my-lambda-packages' \
  --s3-key 'my-function-v2.zip'

Variáveis de ambiente e segredos

Transmita configurações ao Lambda por meio de variáveis de ambiente. Para valores confidenciais (chaves de API e senhas de banco de dados), armazene-os no AWS Secrets Manager ou no Parameter Store e recupere-os no momento da inicialização da função (fora do manipulador) para aproveitar a reutilização do contexto de execução. Nunca codifique segredos diretamente no código da função nem mantenha variáveis de ambiente em texto simples; use criptografia do KMS para as variáveis de ambiente do Lambda e proteja-as enquanto estiverem armazenadas.

import boto3
import os

# Fetch secret once during cold start (outside handler)
ssm = boto3.client('ssm')
DB_PASSWORD = ssm.get_parameter(
    Name=os.environ['DB_PASSWORD_PARAM'],
    WithDecryption=True
)['Parameter']['Value']

def lambda_handler(event, context):
    # DB_PASSWORD is already loaded; no SSM call on each invocation
    pass

Inicializações a frio e reutilização do contexto de execução

A primeira invocação de uma função do Lambda após a implantação ou após um período de inatividade incorre em uma inicialização a frio: a AWS precisa inicializar o ambiente de execução, baixar o pacote de implantação e executar o código de inicialização. As invocações subsequentes no mesmo ambiente de execução são inicializações a quente e são muito mais rápidas. Mantenha o código de inicialização global (clientes do SDK e conexões com o banco de dados) fora do manipulador para reutilizar o contexto de execução entre invocações a quente.

Lambda em uma VPC

Por padrão, o Lambda é executado em uma VPC gerenciada pela AWS e pode acessar a Internet, mas não os recursos da sua VPC privada. Para acessar um banco de dados RDS ou um cluster do ElastiCache em uma sub-rede privada, configure o Lambda para ser executado dentro da sua VPC, especificando sub-redes e grupos de segurança. As funções do Lambda habilitadas para VPC usam ENIs Hyperplane para a rede (sem provisionamento adicional de ENI por função), o que elimina a penalidade histórica de inicialização a frio das funções do Lambda em VPC.

aws lambda update-function-configuration \
  --function-name 'MyFunction' \
  --vpc-config 'SubnetIds=subnet-aaa111,subnet-bbb222,SecurityGroupIds=sg-xyz'

Verificação rápida

Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu que os ambientes de execução do Lambda são compatíveis com Python, Node.js, Java, Go e outras linguagens, incluindo ambientes de execução personalizados e imagens de contêiner para casos avançados; os acionadores, incluindo API Gateway (síncrono) e S3/SNS (assíncronos), definem como os eventos chegam às funções do Lambda; e a função de execução, as variáveis de ambiente e a configuração da VPC são aspectos essenciais para conectar o Lambda com segurança a outros serviços da AWS. A seguir, exploraremos a simultaneidade, a limitação e a simultaneidade reservada do Lambda.

Grátis para começar

Aprenda Cloud & IT Cert Prep com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
150
Aulas
600

Perguntas Frequentes

A aula “Funções do Lambda: ambientes de execução, acionadores e manipuladores” é grátis?

Sim — o texto completo de “Funções do Lambda: ambientes de execução, acionadores e manipuladores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “Funções do Lambda: ambientes de execução, acionadores e manipuladores”?

Escreva uma função do Lambda, escolha um ambiente de execução, configure memória e tempo limite e conecte-a a um evento do S3 ou a um acionador do API Gateway. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Funções do Lambda: ambientes de execução, acionadores e manipuladores”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Funções do Lambda: ambientes de execução, acionadores e manipuladores
  2. Concorrência, limitação e concorrência reservada
  3. Camadas do Lambda e pacotes de implantação
  4. Lambda@Edge e padrões orientados a eventos
← Voltar para Cloud & IT Cert Prep