Processar registros do DynamoDB com o Lambda
Crie um mapeamento de fontes de eventos para orientar o Lambda a enviar registros de sua transmissão para uma função do Lambda. É possível criar vários mapeamentos de origem de evento para processar os mesmos dados com várias funções do Lambda ou processar itens de vários fluxos com uma única função.
Para configurar sua função para ler do DynamoDB Streams, anexe a política AWSLambdaDynamoDBExecutionRole gerenciada pela AWS ao seu perfil de execução e, em seguida, crie um gatilho DynamoDB.
Para adicionar permissões e criar um acionador
Abra a página Funções
do console do Lambda. -
Escolha o nome de uma função.
-
Escolha a guia Configuration (Configuração) e, depois, Permissions (Permissões).
-
Em Nome do perfil, escolha o link para seu perfil de execução. Esse link abre o perfil no console do IAM.
-
Escolha Adicionar permissões e depois Anexar políticas.
-
No campo de pesquisa, digite
AWSLambdaDynamoDBExecutionRole
. Adicione esta política ao seu perfil de execução Essa é uma política gerenciada pela AWS que contém as permissões de que a função precisa para ler um fluxo do DynamoDB. Para obter mais informações sobre essa política, consulte AWSLambdaDynamoDBExecutionRole na Referência de política gerenciada da AWS. -
Volte para a sua função no console do Lambda Em Visão geral da função, escolha Adicionar gatilho.
-
Escolha um tipo de acionador.
-
Configure as opções necessárias e escolha Add (Adicionar).
O Lambda é compatível com as seguintes opções de origens de eventos do DynamoDB:
Opções de fonte do evento
-
DynamoDB table (Tabela do DynamoDB): a tabela do DynamoDB da qual os registros serão lidos.
-
Batch size (Tamanho do lote): o número de registros a serem enviados para a função em cada lote, até 10.000. O Lambda transmite todos os registros no batch para a função em uma única chamada, enquanto o tamanho total dos eventos não exceder o limite de carga útil para invocação síncrona (6 MB).
Batch window (Janela de lote): especifique o máximo de tempo para reunir registros antes de invocar a função, em segundos.
-
Starting position (Posição inicial): processe apenas registros novos ou todos os registros existentes.
-
Latest (Mais recente): processe novos registros adicionados ao fluxo.
-
Trim horizon (Redução horizontal): processe todos os registros na transmissão.
Depois de processar todos os registros existentes, a função é capturada e continua a processar novos registros.
-
Destino na falha: uma fila padrão do SQS ou um tópico padrão do SNS para registros que não podem ser processados. Quando o Lambda descarta um lote de registros que é muito antigo ou esgotou todas as tentativas, ele envia detalhes sobre o lote à fila ou ao tópico.
Retry attempts (Tentativas de repetição): o número máximo de vezes que o Lambda tenta novamente quando a função retorna um erro. Isso não se aplica a erros de serviço ou controles em que o lote não atingiu a função.
Idade máxima do registro: a idade máxima de um registro que o Lambda envia para sua função.
Dividir lote por erro: quando a função retornar um erro, o lote é dividido em dois antes de uma nova tentativa. A configuração do tamanho do lote original permanece inalterada.
Concurrent batches per shard (Lotes simultâneos por fragmento): processa simultaneamente vários lotes do mesmo fragmento.
-
Enabled (Habilitado): defina como verdadeiro para habilitar o mapeamento de fontes de eventos. Defina como falso para interromper o processamento de registros. O Lambda monitora o último registro processado e retoma o processamento a partir desse ponto quando o mapeamento é habilitado novamente.
nota
Você não é cobrado por chamadas da API GetRecords invocadas pelo Lambda como parte de acionadores do DynamoDB.
Para gerenciar a configuração da fonte do evento posteriormente, escolha o gatilho no designer.