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.
Você pode configurar mapeamentos da origem do evento para processar registros de um fluxo em outra Conta da AWS. Para saber mais, consulte Como criar mapeamentos da origem do evento entre contas.
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.
Como criar mapeamentos da origem do evento entre contas
O Amazon DynamoDB agora é compatível com políticas baseadas em recursos. Com esse recurso, você pode processar dados de um fluxo do DynamoDB em uma Conta da AWS com uma função do Lambda em outra conta.
Para criar um mapeamento da origem do evento para sua função do Lambda usando um fluxo do DynamoDB em outra Conta da AWS, você deve configurar o fluxo usando uma política baseada em recursos para dar permissão à função do Lambda para ler registros. Para saber como configurar o fluxo para permitir acesso entre contas, consulte Compartilhar acesso com funções do Lambda entre contas no Guia do desenvolvedor do Amazon DynamoDB.
Depois de configurar o fluxo com uma política baseada em recursos que conceda à função do Lambda as permissões necessárias, crie o mapeamento da origem do evento com seu ARN do fluxo entre contas. Você pode encontrar o ARN do fluxo na guia Exportações e fluxos da tabela no console do DynamoDB entre contas.
Ao usar o console do Lambda, cole o ARN do fluxo diretamente no campo de entrada da tabela do DynamoDB na página de criação do mapeamento da origem do evento.
Observação: não há suporte para gatilhos entre regiões.