DynamoDB desencadeia tipos de gatilhos e tudo o que você precisa saber

DynamoDB desencadeia tipos de gatilhos e tudo o que você precisa saber
Os gatilhos do DynamoDB funcionam como gatilhos em qualquer outro banco de dados. O recurso permite a execução automática de várias ações personalizadas com base em uma matriz de atualizações de nível no nível do item na sua tabela ou índice do DynamoDB. Continua sendo o método mais eficiente para capturar as alterações no nível do método ou no nível do item em um item na sua tabela de dynamoDB.

Os gatilhos geralmente são peças de código que são executadas e respondem automaticamente a novos eventos que ocorrem para desencadear uma função da AWS Lambda. Você pode usar os gatilhos do DynamoDB para construir os aplicativos poderosos e funcionais que ocorrem em seus fluxos ou banco de dados.

Este artigo discute o básico dos gatilhos do DynamoDB. Você conhecerá os tipos de gatilhos do dynamoDB, como ativar cada tipo e alguns casos de uso.

Tipos de gatilhos de dynamoDB

Existem dois tipos de gatilhos de dynamoDB. Eles incluem:

A. DynamoDB Streams

Um fluxo do DynamoDB é um fluxo de informações ordenado ou programado com base em alterações associadas a itens em uma tabela de dynamoDB. Sempre que você habilita um fluxo em uma tabela específica, o DynamoDB captura as informações sobre cada alteração para um item de dados dentro da tabela e armazena as informações em um fluxo.

Os fluxos podem acionar a função Lambda depois de configurar a função. Você pode configurar seus fluxos para acionar uma função Lambda usando as seguintes etapas:

Etapa 1: Confirme se o seu sistema atende a todos os pré -requisitos

Primeiro, você deve conversar com as operações básicas da AWS Lambda. Você também deve confirmar se sua máquina tem a versão mais recente da AWS. O comando a seguir deve ajudar:

versão da AWS

A resposta para o comando anterior deve tomar o seguinte formato. Observe que esta ilustração usa a AWS SDK para Python BOTO3.

AWS-CLI/2.x.x python/3.x.x Linux/4.x.X-XXX-STD Botocore/2.x.x

Nossa resposta é como ilustrada no seguinte:

Etapa 2: crie uma tabela de dynamoDB e prossiga para ativar os fluxos nela

Crie a tabela para a qual você deseja ativar seus fluxos. Observe que você também pode ativar os fluxos em uma tabela existente.

Usamos o AWS SDK para Python para criar nossa tabela, como mostrado na seguinte linha de comando:

Importar BOTO3
# Crie um cliente do DynamoDB
DynamoDB = BOTO3.Client ('DynamoDB')
# Crie uma tabela com uma chave primária 'PK' e uma chave de classificação 'sk'
tabela_name = 'My-Table-Name'
attribute_definitions = [

'AtributeName': 'pk',
'AtributeType': 's'
,

'AtributeName': 'sk',
'AtributeType': 's'
,
]
key_schema = [

'AtributeName': 'pk',
'Keytype': 'hash'
,

'AtributeName': 'sk',
'KeyType': 'gama'
,
]
provisioned_throughput =
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10

DynamoDB.criar a tabela(
TableName = tabela_name,
Atributefinitions = attribute_definitions,
Keyyschema = key_schema,
Provisionedthroughput = provisioned_throughput,
Streamspecification =
'Fieldabled': verdadeiro,
'StreamViewType': 'new_and_old_images'

)

Etapa 3: Crie uma função AWS Lambda

É hora de criar uma função lambda da AWS. Você também precisa especificar o fluxo do DynamoDB como o gatilho. O comando python é o seguinte:

Importar BOTO3
# Crie um cliente Lambda
lambda_client = BOTO3.cliente ('lambda')
# Configure os detalhes da função
function_name = 'my-function'
Runtime = 'Python3.11 '
Role = 'ARN: AWS: IAM :: X123456789012y: Role/Lambda-Basic-Execução'
manipulador = 'função.manipulador
# Crie a função
lambda_client.create_function (
FunctionName = function_name,
Runtime = Runtime,
Função = função,
Manipulador = manipulador,
# Outras configurações de função, como variáveis ​​de ambiente, configurações de VPC, etc.
)
# Obtenha o nome do recurso Amazon (ARN) da função
function_arn = lambda_client.get_function (functionName = function_name) ['Configuration'] ['functionarn']
# Configure os detalhes do gatilho do fluxo
Stream_arn = 'ARN: AWS: DynamoDB: EU-WEST-1: 123456789012: Tabela/My-Table/Stream/2022-01-02T00: 00: 00.000 '
Starting_Position = 'mais recente'
# Adicione o gatilho à função
lambda_client.create_event_source_mapping (
Eventsourcearn = stream_arn,
FunctionName = function_arn,
StartingPosition = Starting_Position,
# Outras opções de configuração, incluindo tamanho do lote, tentativas máximas de repetição, etc.
)

O código anterior cria uma nova função lambda com o nome especificado, tempo de execução e função de execução. Ele também desencadeia a função que escuta as alterações no fluxo dynamoDB especificado.

Etapa 4: Ative um acesso aos registros de vapor

Use o evento Parâmetro no código anterior para acessar seus registros de fluxo para acessar os registros do fluxo. Você também precisa usar o evento.Registros Campo para acessar os registros de fluxo individuais. Cada registro tem um DynamoDB campo que contém os dados do registro do fluxo.

Etapa 5: Ative um acesso à nova imagem

Prossiga para permitir um acesso à nova imagem através do evento.Registros [i].DynamoDB.Nova imagem campo. Uma vez feito, defina o evento.Registros [i].DynamoDB.OldImage Para acessar a imagem antiga do item antes de qualquer alteração.

Use o evento.Registros [i].nome do evento seção para determinar o tipo de alteração que ocorreu (e.g., “Inserir”, “modificar”, “remover”) e usar o evento.Registros [i].EventID campo para identificar exclusivamente cada registro de fluxo.

Etapa 6: confirme o ARN do seu fluxo

Use o evento.Registros [i].Eventsourcearn Campo para conhecer o nome do recurso Amazon (ARN) do fluxo ativado.

Etapa 7: Processe o fluxo registra adequadamente

O processamento do seu fluxo conforme desejado permite que você execute as ações necessárias. Com a análise de fluxo, você pode reconhecer o recebimento de seus registros de fluxo retornando da função.

B. DynamoDB gatilhos usando eventos da AWS CloudWatch

O segundo tipo de gatilhos do dynamoDB está usando os eventos do CloudWatch. Você pode usar esse recurso para configurar as regras que correspondem aos eventos selecionados no fluxo de eventos do DynamoDB. O evento Cloudwatch troggers uma função da AWS Lambda sempre que uma regra corresponde a um evento.

A seguir, é apresentado um exemplo das etapas envolvidas ao criar uma regra de eventos de CloudWatch para desencadear uma função AWS Lambda sempre que você adicionar um item à sua tabela de dynamoDB. Usamos o console de gerenciamento da AWS.

  • Configure um fluxo de dynamoDB na tabela que você deseja monitorar.
  • Crie uma função lambda que o gatilho invoca.
  • Crie uma regra de eventos CloudWatch com um padrão que corresponda aos eventos do DynamoDB Stream nos quais você deseja acionar.
  • Selecione a função Lambda como o alvo para a regra.

Agora, sempre que você adicionar, modificar ou excluir um item, o evento correspondente é enviado ao fluxo do DynamoDB, que aciona a regra de eventos do CloudWatch e chama a função Lambda.

Conclusão

Este artigo é tudo o que você precisa saber sobre os gatilhos do DynamoDB. Mais importante, esperamos que você possa ativar os acionadores de dyanmodb em seus fluxos diretamente ou usando o CloudWatchEvents.