Práticas recomendadas com o Lambda - Amazon DynamoDB

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á.

Práticas recomendadas com o Lambda

Uma AWS Lambda função é executada em um contêiner — um ambiente de execução isolado de outras funções. Quando você executa uma função pela primeira vez, AWS Lambda cria um novo contêiner e começa a executar o código da função.

Uma função do Lambda tem um manipulador que é executado uma vez por invocação. O manipulador contém a lógica de negócios principal da função. Por exemplo, a função do Lambda mostrada em Etapa 4: criar e testar uma função do Lambda tem um identificador que pode processar registros em um fluxo do DynamoDB.

Você também pode fornecer um código de inicialização que seja executado somente uma vez, após a criação do contêiner, mas antes de AWS Lambda executar o manipulador pela primeira vez. A função Lambda mostrada em Etapa 4: criar e testar uma função do Lambda tem um código de inicialização que importa o SDK para JavaScript o Node.js e cria um cliente para o Amazon SNS. Esses objetos devem ser definidos somente uma vez, fora do manipulador.

Depois que a função for executada, AWS Lambda pode optar por reutilizar o contêiner para invocações subsequentes da função. Neste caso, o manipulador da função pode reutilizar os recursos que você definiu no seu código de inicialização. (Você não pode controlar por quanto tempo o AWS Lambda reterá o contêiner, ou se o contêiner será reutilizado.)

Para o AWS Lambda uso de gatilhos do DynamoDB, recomendamos o seguinte:

  • AWS os clientes de serviço devem ser instanciados no código de inicialização, não no manipulador. Isso AWS Lambda permite reutilizar as conexões existentes durante a vida útil do contêiner.

  • Em geral, você não precisa gerenciar explicitamente as conexões ou implementar o pool de conexões porque AWS Lambda gerencia isso para você.

Um consumidor do Lambda para um stream do DynamoDB não garante exatamente uma entrega única e pode resultar em duplicatas ocasionais. Verifique se o código da função Lambda é idempotente para evitar que problemas inesperados ocorram devido ao processamento duplicado.

Para obter mais informações, consulte Práticas recomendadas para trabalhar com AWS Lambda funções no Guia do AWS Lambda desenvolvedor.