DynamoDB Streams e acionadores do AWS Lambda
Tópicos
O Amazon DynamoDB é integrado ao AWS Lambda para que você possa criar acionadores (trechos de código que respondem automaticamente a eventos no DynamoDB Streams). Com os acionadores, você pode criar aplicações que reagem às modificações de dados em tabelas do DynamoDB.
Se você habilitar o DynamoDB Streams em uma tabela, poderá associar o nome do recurso da Amazon (ARN) do fluxo a uma função do AWS Lambda escrita por você. Todas as ações de mutação nessa tabela do DynamoDB poderão então ser capturadas como um item no fluxo. Por exemplo, é possível definir um gatilho para que, quando um item em uma tabela for modificado, um novo registro apareça imediatamente no fluxo dessa tabela.
nota
Se você inscrever mais de duas funções do Lambda em um fluxo do DynamoDB, poderá ocorrer controle de utilização de leitura.
O serviço AWS Lambda pesquisa o fluxo em busca de novos registros quatro vezes por segundo. Quando novos registros de fluxo estão disponíveis, a função do Lambda é invocada de maneira síncrona. É possível inscrever até duas funções do Lambda no mesmo fluxo do DynamoDB. Se você inscrever mais de duas funções do Lambda no mesmo fluxo do DynamoDB, poderá ocorrer controle de utilização de leitura.
A função do Lambda pode enviar uma notificação, iniciar uma workflow ou realizar qualquer outra ação especificada. É possível escrever uma função do Lambda para simplificar a cópia de cada registro de fluxo no armazenamento persistente, como o Gateway de Arquivos do Amazon S3 (Amazon S3), e criar uma trilha de auditoria permanente de atividades de gravação na tabela. Ou suponhamos que você tenha um aplicativo de jogos móveis que grava em uma tabela GameScores
. Sempre que o atributo TopScore
da tabela GameScores
é atualizado, um registro de fluxo correspondente é gravado no fluxo da tabela. Este evento poderia, em seguida, acionar uma função do Lambda que posta uma mensagem de felicitações em uma rede de mídia social. Essa função também seria escrita para ignorar quaisquer registros de fluxo que não são atualizações para GameScores
ou que não modificam o atributo TopScore
.
Se a sua função retornar um erro, o Lambda tentará executar novamente o lote até que o processamento seja bem-sucedido ou os dados expirem. Você também pode configurar o Lambda para tentar novamente com um lote menor, limitar o número de tentativas, descartar registros quando eles se tornarem muito antigos e outras opções.
Como práticas recomendadas de performance, a função do Lambda precisa ser de curta duração. Para evitar a introdução de atrasos de processamento desnecessários, ela também não deve executar uma lógica complexa. Para um fluxo de alta velocidade em particular, é melhor acionar fluxos de trabalho assíncronos de função de etapa de pós-processamento do que Lambdas síncronos de longa execução.
Não é possível usar o mesmo acionador do Lambda em diferentes contas da AWS. A tabela do DynamoDB e as funções do Lambda devem pertencer à mesma conta da AWS.
Para obter mais informações sobre o AWS Lambda, consulte o Guia do desenvolvedor do AWS Lambda.