O que é o AWS Lambda? - AWS Lambda

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O que é o AWS Lambda?

O AWS Lambda é um serviço de computação que permite executar código sem o provisionamento ou gerenciamento de servidores.

O Lambda executa seu código em uma infraestrutura de computação de alta disponibilidade e executa toda a administração dos recursos computacionais, incluindo manutenção do servidor e do sistema operacional, provisionamento e escalabilidade automática da capacidade e registro em log do código. Com o Lambda, tudo o que você precisa fazer é fornecer seu código em uma dos runtimes de linguagens compatíveis com o Lambda.

Você organiza seu código emFunções do Lambda. O serviço do Lambda executa a função somente quando necessário e escala automaticamente. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando o código não estiver em execução. Para obter mais informações, consulte Preços do AWS Lambda.

dica

Para saber como construir soluções com tecnologia sem servidor, confira o Guia do desenvolvedor com tecnologia sem servidor.

Quando usar o Lambda

O Lambda é um serviço de computação ideal para cenários de aplicações que precisam aumentar rapidamente a escala verticalmente e reduzir a escala verticalmente a zero quando não estão sob demanda. Por exemplo, é possível usar o Lambda para:

  • Processamento de arquivos: use o Amazon Simple Storage Service (Amazon S3) para acionar o processamento de dados do Lambda em tempo real após a realização de um upload.

  • Processamento de fluxo: use o Lambda e o Amazon Kinesis para processar dados de streaming em tempo real para monitoramento de atividades de aplicações, processamento de pedidos de transações, análise de clickstream, limpeza de dados, filtragem de logs, indexação, análise de mídias sociais, telemetria de dados de dispositivos da Internet das Coisas (IoT) e medição.

  • Aplicações Web: combine o Lambda com outros serviços da AWS para desenvolver aplicações Web avançadas que diminuem e aumentam a escala verticalmente de forma automática, além de executar em uma configuração altamente disponível em diversos datacenters.

  • Back-ends IoT: desenvolva back-ends com tecnologia sem servidor usando o Lambda para tratar de solicitações de API da Web, de dispositivos móveis, de IoT e de terceiros.

  • Back-ends móveis: desenvolva back-ends usando o Lambda e o Amazon API Gateway para autenticar e processar solicitações de API. Use o AWS Amplify para facilitar a integração com os frontends do iOS, Android, Web e React Native.

Ao usar o Lambda, você é responsável apenas pelo seu código. O Lambda gerencia a frota de computação que oferece um equilíbrio de memória, CPU, rede e outros recursos para executar seu código. Como o Lambda gerencia esses recursos, não é possível fazer login para calcular instâncias ou personalizar o sistema operacional noRuntime fornecido.

O Lambda executa atividades operacionais e administrativas em seu nome, incluindo gerenciamento de capacidade, monitoramento e registro de suas funções do Lambda.

Se você precisar gerenciar seus recursos de computação, a AWS tem outros serviços de computação a serem considerados, como:

  • O AWS App Runner constrói e implanta aplicações da Web em contêineres automaticamente, balanceia a carga do tráfego com criptografia, escala para atender às necessidades do tráfego e permite a configuração de como os serviços são acessados e comunicados com outras aplicações da AWS em uma VPC privada da Amazon.

  • O AWS Fargate com o Amazon ECS executa contêineres sem precisar provisionar, configurar ou escalar os clusters de máquinas virtuais.

  • O Amazon EC2 permite personalizar o sistema operacional, configurações de rede e de segurança, e toda a pilha de software. Você é responsável por provisionar a capacidade, monitorar a integridade e a performance da frota e usar zonas de disponibilidade para tolerância a falhas.

Principais atributos

Os principais recursos a seguir ajudam você a desenvolver aplicações do Lambda escaláveis, seguras e facilmente extensíveis:

Variáveis de ambiente

Usa variáveis de ambiente para ajustar o comportamento da função sem atualizar o código.

Versões

Gerencia a implantação de suas funções com versões para que, por exemplo, uma nova função possa ser usada para testes beta sem afetar os usuários da versão de produção estável.

Imagens de contêiner

Cria uma imagem de contêiner para uma função do Lambda básica usando uma imagem básica da fornecida pela AWS ou uma imagem básica alternativa para que você possa reutilizar as ferramentas de contêiner existentes ou implantar workloads maiores que dependem de dependências consideráveis, como machine learning.

Camadas

Bibliotecas de pacotes e outras dependências para reduzir o tamanho dos arquivos de implantação e acelerar a implantação do seu código.

Extensões do Lambda

Amplia suas funções do Lambda com ferramentas para monitoramento, observabilidade, segurança e governança.

URLs da função

Adiciona um endpoint de HTTP(S) dedicado à sua função do Lambda.

Streaming de respostas

Configura seus URLs de funções do Lambda para fazer o streaming de cargas de resposta de volta aos clientes a partir das funções do Node.js, para melhorar o desempenho do tempo até o primeiro byte (TTFB) ou para retornar cargas maiores.

Controles de simultaneidade e escalabilidade

Aplicam controle detalhado sobre a escalabilidade e a capacidade de resposta das aplicações de produção.

Assinatura de código

Verifica se somente desenvolvedores aprovados publicam código confiável e inalterado em suas funções do Lambda

Redes privadas

Cria uma rede privada para recursos como bancos de dados, instâncias de cache ou serviços internos.

Acesso ao sistema de arquivos

Configura uma função para montar um Amazon Elastic File System (Amazon EFS) em um diretório local, de forma que o código da função possa acessar e modificar os recursos compartilhados com segurança e com alta simultaneidade.

Lambda SnapStart para Java

Melhora o desempenho de inicialização para ambientes de runtimes de Java em até dez vezes sem custos extras e, geralmente, sem alterações no código da função.