DynamoDB utløser typer triggere og alt du trenger å vite

DynamoDB utløser typer triggere og alt du trenger å vite
DynamoDB utløser fungerer som utløsere i noen annen database. Funksjonen gjør det mulig. Det er fortsatt den mest effektive metoden for å fange opp metodnivå eller endringer på et element på et element i DynamoDB-tabellen.

Utløsere er vanligvis kodebiter som automatisk kjører og svarer på nye hendelser som oppstår for å utløse en AWS Lambda -funksjon. Du kan bruke DynamoDB-triggerne til å bygge de kraftige og funksjonelle hendelsesdrevne applikasjonene som oppstår i strømmer eller database.

Denne artikkelen diskuterer det grunnleggende om DynamoDB -utløsere. Du vil kjenne hvilke typer DynamoDB -utløsere, hvordan du kan aktivere hver type og noen få brukssaker.

Typer dynamoDB -utløsere

Det er to typer dynamoDB -triggere. De inkluderer:

EN. DynamoDB -strømmer

En dynamoDB -strøm er en bestilt eller programmert flyt av informasjon basert på endringer assosiert med elementer i en DynamoDB -tabell. Når du aktiverer en strøm på en bestemt tabell, fanger DynamoD til informasjonen om hver endring til et dataelement i tabellen og lagrer informasjonen i en strøm.

Strømmene kan utløse lambda -funksjonen når du konfigurerer funksjonen. Du kan sette opp strømmer for å utløse en lambda -funksjon ved å bruke følgende trinn:

Trinn 1: Bekreft om systemet ditt oppfyller alle forutsetningene

Først bør du bli snakket med de grunnleggende AWS Lambda -operasjonene. Du bør også bekrefte om maskinen din har den siste AWS -versjonen. Følgende kommando skal hjelpe:

AWS -versjon

Responsen for forrige kommando bør ta følgende format. Merk at denne illustrasjonen bruker AWS SDK for Python Boto3.

AWS-CLI/2.x.X Python/3.x.x linux/4.x.X-XXX-STD BOTOCORE/2.x.x

Vårt svar er som illustrert i følgende:

Trinn 2: Lag en dynamodb -tabell og fortsett å aktivere bekkene på den

Lag tabellen du vil aktivere strømningene dine. Merk at du også kan aktivere bekkene på et eksisterende bord.

Vi bruker AWS SDK for Python for å lage vårt bord som vist i følgende kommandolinje:

Importer BOTO3
# Opprett en DynamoDB -klient
dynamodb = boto3.klient ('dynamodb')
# Lag en tabell med en primær nøkkel 'PK', og en sort -tast 'SK'
tabell_name = 'my-table-name'
attributt_definisjoner = [

'AttributeName': 'PK',
'AttributeType': 'S'
,

'AttributeName': 'Sk',
'AttributeType': 'S'
,
]
Key_schema = [

'AttributeName': 'PK',
'KeyType': 'Hash'
,

'AttributeName': 'Sk',
'KeyType': 'Range'
,
]
levert_throughput =
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10

Dynamodb.create_table (
Tablename = table_name,
ATTIBUTEDEFINITIONS = ATTIBUTE_DEFINITIONS,
Keyschema = Key_schema,
LevertTHROUGHPUTT = levert_throughput,
StreamSpecification =
'Streamenabled': True,
'StreamViewType': 'new_and_old_images'

)

Trinn 3: Lag en AWS Lambda -funksjon

Det er på tide å lage en AWS Lambda -funksjon. Du må også spesifisere DynamoDB -strømmen som utløseren. Python -kommandoen er som følger:

Importer BOTO3
# Opprett en Lambda -klient
lambda_client = boto3.klient ('lambda')
# Sett opp funksjonsdetaljene
funksjon_name = 'my-funksjon'
runtime = 'python3.11 '
rolle = 'Arn: AWS: iam :: x123456789012Y: rolle/lambda-basic-execution'
handler = 'funksjon.handler '
# Opprett funksjonen
lambda_client.create_function (
FunctionName = Function_name,
Runtime = Runtime,
Rolle = rolle,
Handler = Handler,
# Andre funksjonskonfigurasjoner, for eksempel miljøvariabler, VPC -innstillinger, etc.
)
# Få Amazon Resource Name (ARN) til funksjonen
funksjon_arn = lambda_client.get_function (funksjonsnavn = funksjon_navn) ['konfigurasjon'] ['funksjonarn']
# Sett opp strømutløserdetaljer
Stream_arn = 'Arn: AWS: Dynamodb: EU-West-1: 123456789012: Tabell/My-Table/Stream/2022-01-02T00: 00: 00.000 '
start_position = 'siste'
# Legg til utløseren til funksjonen
lambda_client.create_event_source_mapping (
Eventsourcearn = stream_arn,
Funksjonsnavn = funksjon_arn,
StartPosition = start_position,
# Andre konfigurasjonsalternativer, inkludert batchstørrelse, maksimale forsøk på nytt osv.
)

Den forrige koden oppretter en ny lambda -funksjon med det spesifiserte navnet, runtime og utførelsesrollen. Det utløser også funksjonen som lytter for endringer på den spesifiserte DynamoDB -strømmen.

Trinn 4: Aktiver en tilgang til Steam Records

Bruke begivenhet Parameter i forrige kode for å få tilgang til strømpostene dine for å få tilgang til strømopptakene. Du må også bruke begivenhet.Poster Felt for å få tilgang til de individuelle strømopptakene. Hver post har en Dynamodb Felt som inneholder dataens data.

Trinn 5: Aktiver en tilgang til det nye bildet

Fortsett å muliggjøre en tilgang til det nye bildet gjennom begivenhet.Poster [i].Dynamodb.NewImage felt. Når du er ferdig, angir du begivenhet.Poster [i].Dynamodb.OldImage For å få tilgang til det gamle bildet av varen før noen endringer.

Bruke begivenhet.Poster [i].arrangementsnavn seksjon for å bestemme hvilken type endring som skjedde (e.g., “Sett inn”, “Endre”, “Fjern”) og bruk begivenhet.Poster [i].EventId felt for å identifisere hver strømoppføring unikt.

Trinn 6: Bekreft ARN for strømmen din

Bruke begivenhet.Poster [i].Eventsourcearn Felt for å kjenne Amazon Resource Name (ARN) til den aktiverte strømmen.

Trinn 7: Behandle strømopptakene på riktig måte

Behandling av strømmen din som ønsket gjør det mulig for deg å utføre nødvendige handlinger. Med strømanalysen kan du erkjenne mottakelsen av strømopptakene dine ved å returnere fra funksjonen.

B. DynamoDB utløser ved hjelp av AWS CloudWatch -hendelser

Den andre typen DynamoDB -triggere bruker CloudWatch -hendelsene. Du kan bruke denne funksjonen til å sette opp reglene som samsvarer med de valgte hendelsene i strømmen av DynamoDB -hendelser. CloudWatch -arrangementet trogger en AWS Lambda -funksjon når en regel samsvarer med en hendelse.

Følgende er et eksempel på trinnene som er involvert når du oppretter en CloudWatch -hendelsesregel for å utløse en AWS Lambda -funksjon når du legger til et element i DynamoDB -tabellen. Vi bruker AWS Management Console.

  • Sett opp en DynamoDB -strøm på bordet som du vil overvåke.
  • Lag en lambda -funksjon som utløseren påkaller.
  • Lag en CloudWatch -hendelsesregel med et mønster som samsvarer med DynamoDB Stream -hendelsene du vil utløse.
  • Velg Lambda -funksjonen som mål for regelen.

Nå, når du legger til, endrer eller sletter et element, blir den tilsvarende hendelsen sendt til DynamoDB -strømmen som utløser CloudWatch -hendelsesregelen og påkaller Lambda -funksjonen.

Konklusjon

Denne artikkelen er alt du trenger å vite om DynamoDB -utløsere. Enda viktigere er at vi håper at du kan aktivere DyanMoDB -utløsere på bekkene dine direkte eller bruke CloudWatchEvents.