Aws Lambda
Serverless event-driven computing.
AWS Lambda é um serviço de computação serverless e orientado a eventos fornecido pela Amazon Web Services (AWS). Ele permite que os desenvolvedores executem código sem provisionar ou gerenciar servidores. Os desenvolvedores carregam seu código como funções Lambda, e a AWS gerencia automaticamente a infraestrutura necessária para executar e escalar esse código com alta disponibilidade. As funções são acionadas por vários eventos, como alterações em dados em um bucket Amazon S3, atualizações em uma tabela Amazon DynamoDB ou solicitações do [API Gateway](/pt/terms/api-gateway). Quando um gatilho ocorre, o Lambda executa a função, alocando os recursos de computação necessários. A cobrança é baseada no número de solicitações e na duração/memória consumida durante a execução, com um generoso nível gratuito. Os principais recursos incluem escalonamento automático, ambientes de execução sem estado (embora o estado possa ser gerenciado externamente), suporte para várias linguagens de programação (Node.js, Python, Java, C#, Go, Ruby, PowerShell e runtimes personalizados) e integração com uma vasta gama de serviços AWS. As funções Lambda são tipicamente de curta duração, projetadas para tarefas específicas em vez de aplicações de longa execução. As desvantagens incluem possíveis cold starts (latência quando uma função não foi invocada recentemente), limites de tempo de execução, limitações de memória e armazenamento temporário, e vendor lock-in ao ecossistema AWS. É ideal para processamento de eventos, microsserviços, transformação de dados e APIs de backend.
graph LR
Center["Aws Lambda"]:::main
Rel_api_gateway["api-gateway"]:::related -.-> Center
click Rel_api_gateway "/terms/api-gateway"
Rel_microservices["microservices"]:::related -.-> Center
click Rel_microservices "/terms/microservices"
Rel_serverless["serverless"]:::related -.-> Center
click Rel_serverless "/terms/serverless"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
Pense no AWS Lambda como um chef mágico que só cozinha quando você pede um prato específico (um evento acontece). Você dá a receita (seu código) ao chef, e ele a cozinha instantaneamente usando as ferramentas certas, cobrando apenas pelo tempo que ele passa cozinhando.
🤓 Expert Deep Dive
O AWS Lambda opera em um modelo de execução baseado em contêineres. Quando uma função é invocada, o Lambda provisiona um microcontêiner, carrega o código da função e o executa. Para funções invocadas com pouca frequência, essa etapa de provisionamento introduz latência de 'cold start'. Invocações subsequentes dentro de um curto período reutilizam o contêiner existente ('warm start'), reduzindo significativamente a latência. As funções Lambda são inerentemente sem estado; qualquer estado necessário deve ser persistido externamente (por exemplo, em DynamoDB, S3, RDS). O modelo de concorrência permite que várias instâncias de uma função sejam executadas em paralelo, gerenciadas pela AWS para atender à demanda até os limites de concorrência em nível de conta. O Provisioned Concurrency pode ser usado para mitigar cold starts para aplicações sensíveis à latência, mantendo um número especificado de ambientes de execução aquecidos. A segurança é gerenciada por meio de funções IAM, concedendo às funções permissões granulares para acessar outros recursos AWS. O mecanismo de mapeamento de origem de eventos permite que o Lambda consulte fontes de eventos (como fluxos Kinesis) e invoque funções com lotes de registros. As considerações arquitetônicas incluem otimizar a alocação de memória da função (que também afeta a alocação de CPU), gerenciar dependências e projetar para idempotência devido a possíveis novas tentativas.