AWS Lambda
Guia do desenvolvedor

Recursos do AWS Lambda

O AWS Lambda fornece um console de gerenciamento e uma API para gerenciar e invocar funções. Proporciona tempos de execução que oferecem suporte a um conjunto padrão de recursos para que você possa alternar facilmente entre linguagens e estruturas, dependendo do que precisar. Além das funções, também é possível criar versões, aliases, camadas e tempos de execução personalizados.

Modelo de programação

As especificações de criação variam entre os tempos de execução, mas todos os tempos de execução compartilham um modelo de programação comum que define a interface entre o seu código e o código do tempo de execução. Você pode instruir ao tempo de execução qual método executar definindo um manipulador na configuração da função e o tempo de execução executa esse método. O tempo de execução transmite ao manipulador os objetos que contêm o evento de invocação e o contexto, como o nome da função e o ID da solicitação.

O tempo de execução captura a saída do registro em log da função e a envia para o Amazon CloudWatch Logs. É possível usar a funcionalidade de registro em log padrão da sua linguagem de programação. Se a função lançar um erro, o tempo de execução retornará esse erro para o cliente.

nota

O registro em log está sujeito a limites do CloudWatch Logs. Os dados de log podem ser perdidos devido a limitações ou, em alguns casos, quando o contexto de execução é encerrado.

Se a função for encerrada sem erros, o tempo de execução enviará outro evento para ela. A classe da função permanece na memória, portanto, podem ser reutilizadas clientes e variáveis que são declarados fora do método do manipulador. A função também tem acesso ao armazenamento local no diretório /tmp.

O Lambda dimensiona a função executando instâncias adicionais dela à medida que a demanda aumenta, e encerrando instâncias à medida que a demanda diminui. Salvo indicação em contrário, as solicitações de entrada poderiam ser processadas fora de ordem ou simultaneamente. Armazene o estado do aplicativo em outros serviços e não dependa de que instâncias da função sejam de longa duração. Use o armazenamento local e os objetos do nível de classe para aumentar o desempenho, mas mantenha o mínimo do tamanho do pacote de implantação e da quantidade de dados transferidos para o ambiente de execução.

Para obter uma introdução prática do modelo de programação na linguagem de programação de sua preferência, consulte os capítulos a seguir.

Escalabilidade

O Lambda gerencia a infraestrutura que executa o código, e a dimensiona automaticamente em resposta às solicitações recebidas. Quando a função é invocada mais rapidamente do que a capacidade de uma única instância da função processar eventos, o Lambda faz o dimensionamento executando instâncias adicionais. Quando o tráfego diminui, as instâncias inativas são congeladas ou encerradas. Você paga somente pelo tempo em que o código da função está realmente processando eventos.

Para obter mais informações, consulte Dimensionamento de funções do AWS Lambda.

Pacote de implantação

O código da função consiste em scripts ou programas compilados e suas dependências. Quando você cria funções no console do Lambda ou um toolkit, o cliente cria um arquivo ZIP do seu código chamado pacote de implantação. Depois, o cliente enviará o pacote ao serviço Lambda. Quando gerencia funções com a API do Lambda, ferramentas de linha de comando ou SDKs, você cria o pacote de implantação. Você também precisa criar um pacote de implantação manualmente para linguagens compiladas e para adicionar dependências à sua função.

Para obter instruções específicas de linguagem, consulte os tópicos a seguir.

Esquemas de funções

Ao criar uma função no console do Lambda, você pode optar por iniciar do zero, usar um esquema ou implantar um aplicativo do AWS Serverless Application Repository. Um esquema fornece um código de exemplo que mostra como usar o Lambda com um produto da AWS ou um aplicativo popular de terceiros. Os esquemas incluem predefinições de código de exemplo e configuração de funções para tempos de execução de Node.js e Python.

Os esquemas são fornecidos para serem usados sob a licença do Creative Commons Zero . Estão disponíveis apenas no console do Lambda.

Modelos de aplicativos

O console do Lambda pode ser usado para criar um aplicativo com um pipeline de entrega contínua. Os modelos de aplicativos no console do Lambda incluem código para uma ou mais funções, um modelo de aplicativo que define funções e recursos de suporte da AWS e um modelo de infraestrutura que define um pipeline do AWS CodePipeline. O pipeline tem estágios de compilação e implantação que são executados sempre que você enviar alterações para o repositório Git incluído.

Os modelos de aplicativos são fornecidos para serem utilizados sob a licença de MIT No Attribution (MIT sem atribuição) . Estão disponíveis apenas no console do Lambda.

Para obter mais informações, consulte Criar um aplicativo com entrega contínua no console do Lambda.

Camadas

As camadas do Lambda são um mecanismo de distribuição para bibliotecas, tempos de execução personalizados e outras dependências da função. As camadas permitem que você gerencie seu código de função no desenvolvimento de forma independente do código inalterável e os recursos que ele usa. Você pode configurar a função para usar camadas que você criar, camadas fornecidas pela AWS ou camadas de outros clientes da AWS.

Para obter mais informações, consulte Camadas do AWS Lambda.