Quero criar um gatilho do AWS Lambda para processar o fluxo de uma tabela global do Amazon DynamoDB.
Resolução
Uma tabela global do DynamoDB é um conjunto de réplicas entre regiões em uma única conta. Tabelas globais usam o DynamoDB Streams para replicar dados em diferentes regiões. Quando você cria uma réplica para uma tabela global, um fluxo é criado por padrão. Qualquer alteração em uma réplica é replicada em menos de um segundo para todas as outras réplicas dentro da mesma tabela global usando o DynamoDB Streams.
Observação: ter um único consumidor em qualquer uma das réplicas da tabela global em qualquer região é suficiente para recuperar os registros de modificação de todos os itens.
Você pode configurar um gatilho do AWS Lambda para processar um fluxo de uma réplica de tabela global fazendo o seguinte:
- Certifique-se de que AWSLambdaDynamoDBExecutionRole tenha as permissões necessárias do AWS Identity and Access Management (IAM).
Observação: por padrão, a política do IAM AWSLambdaDynamoDBExecutionRole não tem permissões para o Lambda se comunicar com outros serviços, como o Amazon Simple Notification Service (Amazon SNS). Isso significa que você deve acrescentar as permissões adicionais necessárias com base no destino do Lambda.
- Crie uma função do Lambda usando o esquema dynamodb-process-stream. Você pode modificar o código do Lambda de acordo com sua necessidade de processar os dados do fluxo.
- Depois de criar a função do Lambda com êxito, abra o console do DynamoDB e selecione a réplica da tabela global. Na guia Exports and streams (Exportações e fluxos), escolha Create trigger (Criar gatilho). Em seguida, selecione a função do Lambda criada na etapa anterior. Certifique-se de selecionar Enable trigger (Habilitar gatilho) para que o gatilho seja ativado depois de criado.
A função do Lambda agora está configurada como um acionador para a sua réplica de tabela global. Todas as alterações na réplica serão capturadas pelo fluxo, e o gatilho será chamado.
Informações relacionadas
DynamoDB Streams e gatilhos do AWS Lambda