Recursos do AWS Lambda

Por que o AWS Lambda?

O AWS Lambda é um serviço computacional sem servidor que executa código em resposta a eventos e gerencia automaticamente os recursos computacionais subjacentes para você. Esses eventos podem incluir mudanças no estado ou uma atualização, como um usuário colocando um item em um carrinho de compras de um site de comércio eletrônico. Você pode usar o AWS Lambda para estender outros serviços da AWS com lógica personalizada ou criar seus próprios serviços de backend que operam com a escala, performance e segurança da AWS. O AWS Lambda executa automaticamente o código em resposta a vários eventos, como solicitações HTTP por meio do Amazon API Gateway, modificações de objetos em buckets do Amazon Simple Storage Service (Amazon S3), atualizações de tabela no Amazon DynamoDB e transições de estado no AWS Step Functions.

O Lambda executa o código em uma infraestrutura de computação altamente disponível e executa toda a administração dos recursos de computação. Isso inclui manutenção do servidor e do sistema operacional, provisionamento de capacidade e escalabilidade automática, implantação de código e patch de segurança, além de monitoramento e registro do código. Tudo o que você precisa fazer é fornecer o código.

Principais atributos do produto

O AWS Lambda permite que você adicione lógica personalizada aos recursos da AWS como buckets do Amazon S3 e tabelas do Amazon DynamoDB, para que você possa aplicar facilmente a computação aos dados quando eles entram ou se movem na nuvem.

É fácil começar a usar o AWS Lambda. Primeiro, você cria uma função carregando o código (ou criando o código diretamente no console do Lambda) e escolhendo a memória, o tempo limite e o perfil do AWS Identity and Access Management (IAM). Então, você especifica o recurso da AWS que acionará a função. Pode ser um bucket do Amazon S3 específico, uma tabela do Amazon DynamoDB ou uma transmissão do Amazon Kinesis. Quando o recurso muda, o Lambda executa sua função e lança e gerencia os recursos computacionais, conforme necessário, para acompanhar as solicitações de entrada.

Você pode usar o AWS Lambda para criar novos serviços de aplicações de backend acionados sob demanda usando a Interface do Programa da Aplicação (API) do Lambda ou os endpoints de API personalizados construídos usando o Amazon API Gateway. O Lambda processa eventos personalizados em vez de processá-los no cliente, ajudando a evitar variações da plataforma do cliente, reduzir o consumo de bateria e facilitar as atualizações.

Com o AWS Lambda, não há novas linguagens, ferramentas ou frameworks para aprender. Você pode usar qualquer biblioteca de terceiro, até mesmo nativas. Você pode também empacotar qualquer código (frameworks, SDKs, bibliotecas e mais) como uma camada Lambda e gerenciá-lo e compartilhá-lo facilmente em diversas funções. O Lambda oferece suporte nativamente aos códigos Java, Go, PowerShell, Node.js, C#, Python e Ruby, bem como uma API de tempo de execução que permite usar qualquer linguagem de programação adicional para criar suas funções.

O AWS Lambda gerencia toda a infraestrutura para executar seu código em uma infraestrutura altamente disponível e tolerante a falhas, liberando você para se concentrar na criação de serviços de backend diferenciados. Com o Lambda, você nunca tem que atualizar o sistema operacional (SO) quando um patch é liberado nem se preocupar com redimensionamento ou adição de novos servidores, conforme seu uso aumenta. O AWS Lambda implanta código com transparência, processa toda a administração, manutenção e patches de segurança e fornece registro e monitoramento integrados por meio do Amazon CloudWatch.

O AWS Lambda mantém a capacidade computacional em várias zonas de disponibilidade (AZs) em cada região da AWS para ajudar a proteger seu código de falhas de instalação de datacenter ou de máquina individual. Tanto o AWS Lambda quanto as funções em execução no serviço fornecem performance operacional previsível e confiável. O AWS Lambda foi concebido para oferecer alta disponibilidade para o serviço em si e para as funções que opera. Não há janelas de manutenção nem tempos de inatividade programados.

O AWS Lambda é compatível com empacotamento e implantação de funções como imagens de contêiner, facilitando a criação de aplicações baseadas no Lambda usando ferramentas, fluxos de trabalho e dependências familiares de imagens de contêiner. Os clientes também se beneficiam da simplicidade operacional do Lambda, da escalabilidade automática com tempos de inicialização abaixo de um segundo, da alta disponibilidade, do modelo de pagamento conforme o uso, das integrações nativas em 200 produtos da AWS e aplicações Software-as-a-Service (SaaS – Software como serviço). Os clientes empresariais podem usar um conjunto consistente de ferramentas com as aplicações do Lambda e em contêineres, simplificando requisitos de governança central, como varredura de segurança e assinatura de imagens.

O AWS Lambda invoca seu código apenas quando necessário e escala automaticamente para comportar a taxa de solicitações de entrada sem nenhuma configuração manual. Não há limite para o número de solicitações que o seu código pode atender. O AWS Lambda tipicamente executa seu código em milissegundos de um evento. Como o Lambda escala automaticamente, a performance permanece consistentemente alta à medida que a frequência de eventos aumenta. Como o código é sem estado, o Lambda pode iniciar quantas instâncias forem necessárias sem implantações demoradas e atrasos de configuração.

Use o Amazon RDS Proxy para tirar proveito de grupos de conexão totalmente gerenciados para bancos de dados relacionais. O RDS Proxy gerencia com eficiência milhares de conexões simultâneas com bancos de dados relacionais, facilitando a criação de aplicativos sem servidor altamente escaláveis, seguros e baseados em Lambda que interagem com bancos de dados relacionais. Atualmente, o RDS Proxy oferece suporte ao MySQL e ao Aurora. Você pode usar o RDS Proxy para aplicações sem servidor por meio do console do Amazon RDS ou do console do AWS Lambda.

A simultaneidade provisionada oferece maior controle sobre a performance da aplicação sem servidor. Quando ativada, a simultaneidade provisionada mantém as funções inicializadas e prontas para responder em questão de milissegundos. A simultaneidade provisionada é ideal para qualquer aplicação do AWS Lambda que exija maior controle sobre o tempo de início da função. Configure e ajuste facilmente a simultaneidade exigida por sua aplicação. Aumente ou reduza a escala na vertical ou desative completamente, dependendo da demanda. Aproveite as vantagens da simultaneidade provisionada para obter performance consistente para aplicações sensíveis à latência sem alterar seu código nem gerenciar recursos de computação.

Com o Amazon Elastic File System (EFS) para AWS Lambda, você pode ler, gravar e persistir grandes volumes de dados com segurança e baixa latência, em qualquer escala. Você não precisa escrever código e baixar dados para armazenamento temporário para processá-los. Isso economiza tempo e simplifica o código, para que você se concentre na sua lógica de negócios. O EFS para Lambda é ideal para uma variedade de casos de uso, incluindo processamento ou backup de grandes quantidades de dados e carregamento de grandes arquivos ou modelos de referência. Você também pode compartilhar arquivos entre instâncias sem servidor ou aplicações baseadas em contêiner e até mesmo executar inferência de machine learning (ML) usando EFS para AWS Lambda.

Com o Lambda@Edge, o AWS Lambda pode executar código em localizações da AWS globalmente em resposta a eventos do Amazon CloudFront, como solicitações de conteúdo para ou de visualizadores e servidores de origem. Isso facilita a entrega de conteúdo mais completo e personalizado para usuários finais, com latência mais baixa. 

Crie fluxos de trabalho do AWS Step Functions para coordenar várias funções do AWS Lambda para tarefas complexas ou de longa duração. O Step Functions permite definir fluxos de trabalho que disparam uma coleção de funções do Lambda usando etapas sequenciais, paralelas, ramificadas e de processamento de erro. Com o Step Functions e o Lambda, você pode criar processos stateful de longa execução para aplicativos e back-ends.

O Kit de Desenvolvimento de Software (SDK) integrado do AWS Lambda se integra ao AWS Identity and Access Management (IAM) para garantir o acesso seguro ao código a outros serviços da AWS. O AWS Lambda executa seu código em uma Amazon Virtual Private Cloud (VPC) por padrão. Opcionalmente, você pode configurar o acesso a recursos do AWS Lambda atrás de sua própria VPC para aproveitar grupos de segurança personalizados e listas de controle de acesso à rede. Isso fornece acesso seguro da função Lambda aos seus recursos em uma VPC. O AWS Lambda é compatível com SOCHIPAAPCIISO. Para obter as mais recentes informações sobre a certificação e a compatibilidade do Lambda, consulte os serviços no escopo completos.

A assinatura de código do AWS Lambda permite verificar se apenas o código inalterado publicado por desenvolvedores aprovados foi implantado nas funções do Lambda. Você apenas cria artefatos de código assinados digitalmente e configura as funções do Lambda para verificar as assinaturas na implantação. Isso aumenta a velocidade e a agilidade do desenvolvimento de sua aplicação, mesmo em grandes equipes, ao mesmo tempo em que impõe altos padrões de segurança.

Com o AWS Lambda, você paga pela duração da execução, não pela unidade do servidor. Ao usar as funções do Lambda, você paga apenas pelas solicitações atendidas e pelo tempo de computação necessário para executar seu código. O faturamento é medido em incrementos de um milissegundo, permitindo uma escalabilidade automática fácil e econômica de algumas solicitações por dia a milhares por segundo. Com a simultaneidade provisionada, você paga pela quantidade de simultaneidade configurada e pela duração em que a configura. Quando a simultaneidade provisionada está habilitada e sua função é executada, você também paga pelas solicitações e pela duração da execução. Para saber mais sobre os preços, consulte Preços do AWS Lambda.

Escolha a quantidade de memória que quer alocar para as funções e o AWS Lambda aloca capacidades proporcionais de CPU, largura de banda de rede e entrada/saída (E/S) de disco.

As extensões do AWS Lambda permitem fácil integração com suas ferramentas favoritas de monitoramento, observabilidade, segurança e governança. O Lambda invoca sua função em um ambiente de execução, que fornece um tempo de execução seguro e isolado em que o código da função é executado. As extensões do Lambda são executadas no ambiente de execução do Lambda, junto com o código da função. As extensões do Lambda podem usar a API de telemetria do AWS Lambda para coletar informações de diagnóstico detalhadas, como logs, métricas e rastreamentos, diretamente do Lambda, e enviá-las para um destino de sua escolha. Você também pode usar extensões para integrar seus agentes de segurança preferidos ao Lambda, tudo sem sobrecarga operacional e com o mínimo impacto na performance das funções.

As funções do AWS Lambda em execução no Graviton2, usando uma arquitetura de processador baseada em ARM projetada pela AWS, oferecem performance de preço até 34% melhor em comparação com as funções em execução em processadores x86. Isso se aplica a uma variedade de workloads sem servidor, como processamento de backends da Web e móveis, de dados e de mídia. Com latência mais baixa, performance até 19% melhor, custo 20% menor e a maior eficiência de energia disponível atualmente na AWS, as funções do Graviton2 podem ser usadas para alimentar aplicações sem servidor essenciais à missão.

O AWS Lambda fornece recursos de monitoramento integrados ao capturar e enviar de forma automática logs, métricas e rastreamentos para os serviços de monitoramento e observabilidade da AWS, como o Amazon CloudWatch e o AWS X-Ray. O Lambda também oferece recursos avançados de monitoramento, como o Live Tail, que possibilita a visualização e a análise de registros em tempo real, controles avançados de logs que podem ser capturados de forma nativa no formato estruturado JSON, controle de filtragem do nível de log sem fazer alterações no código e personalização do grupo de logs do CloudWatch para o qual o Lambda envia logs. Com o Application Signals, o Lambda oferece uma ferramenta pronta para uso no monitoramento de desempenho de aplicações (APM) com a finalidade de rastrear throughputs, disponibilidades, latências, falhas e erros em suas aplicações sem servidor. O Lambda Insights captura de forma automática métricas detalhadas, inclusive memória, CPU e uso da rede para oferecer informações mais profundas sobre o desempenho da função do Lambda. Além disso, o Lambda oferece suporte para a integração perfeita com as ferramentas de monitoramento de terceiros, por meio de extensões do Lambda, para facilitar o uso de suas ferramentas preferidas, de forma a monitorar e solucionar problemas de suas aplicações sem servidor.