Selvfølgelig kan du også bruke DynamoDB -strømmene for å utløse nedstrømsprosessene og AWS Lambda -funksjonene. Lambda, per definisjon, er en serverløs beregningstjeneste som kjører koden din som svar på hendelser og administrerer automatisk beregningsressursene for deg.
Du kan bruke Lambda til å skrive koden i Node.JS, Python, Java eller C# for å behandle strømopptakene og ta passende handlinger. Den største fordelen med å integrere DynamoDB -strømmen med Lambda er at Lambda lar deg kjøre støttetjenester eller applikasjonskoder uten behov for administrasjon.
Hvordan bruke AWS DynamoDB -strømmer med Lambda
Selv om det er mulig å lage en lambda -funksjon som bruker hendelsene og forekomstene fra en DynamoDB -strøm, kan prosessen være ganske oppgave, spesielt på ditt første forsøk. Følgende trinn hjelper:
Trinn 1: Forsikre deg om at systemet ditt oppfyller forutsetningene
Denne prosedyren vil bare lykkes hvis du kjenner de grunnleggende lambda -operasjonene og prosessene. Dermed bør dette være din første for å sikre at din forståelse av lambda er over gjennomsnittet.
Den andre forutsetningen som er verdt å vurdere er å bekrefte systemets AWS -versjon. Du kan bruke følgende kommando:
aws -versionResultatet for den oppgitte kommandoen skal se slik ut:
AWS-CLI/2.x.X Python/3.x.x linux/4.x.X-XXX-STD BOTOCORE/2.x.xDen gitte prøvesponsen inneholder den installerte versjonen av AWS CLI (AWS-CLI/2.x.x), Python -versjonen (Python/3.x.x), og operativsystemet (Linux/4.x.X-XXX-STD). Den siste delen av svaret definerer Botocore Library -versjonen som AWS CLI kjører på (Botocore/2.x.x).
Du vil derfor ende opp med noe slikt:
Trinn 2: Lag en utførelsesrolle
Neste trinn er å skape en utførelsesrolle i AWS CLI. En utførelsesrolle er en AWS Identity and Access Management (IAM) rolle som en AWS -tjeneste påtar seg for å utføre oppgavene på dine vegne. Det gir deg tilgang til AWS -ressurser som du trenger underveis.
Du kan opprette en rolle ved hjelp av følgende kommando:
aws iam create-role \Den forrige kommandoen er en AWS CLI -kommando for å opprette en rolle. Du kan også bruke Amazon Management Console for å lage en rolle. Når du er på IAM -konsollen, må du åpne Roller side og klikk på Skape rolle knapp.
Fortsett med å oppgi følgende:
Du kan også bruke Python ved først å installere AWS SDK for Python:
PIP -install BOTO3Trinn 3: Aktiver DynamoDB -strømmene på bordet ditt
Du må aktivere DynamoDB -strømningene på bordet ditt. For denne illustrasjonen bruker vi BOTO3, AWS SDK for Python. Følgende kommando vil hjelpe:
Importer BOTO3Denne koden muliggjør DynamoDB -strømmen på “Mytable” -tabellen som strømmer både de nye og gamle bildene av elementer så snart noen endringer skjer. Du kan velge å bare streame de nye bildene så snart StreamViewType til “New_Image”.
Å kjøre denne koden kan bare bare aktivere bekkene på bordene dine etter en stund. I stedet kan prosessen ta litt tid. Du kan bruke Beskrivelses_table -metoden for å sjekke statusen til strømmen.
Trinn 4: Lag lambda -funksjonen
Neste trinn er å lage en lambda -funksjon som utløser dynamoDB -strømmen. Følgende trinn skal hjelpe:
Det er alt som skjer når du oppretter en lambda -funksjon! Funksjonen din utløses nå når det er oppdateringer av den spesifiserte DynamoDB -tabellen.
Her er et eksempel på en enkel Python -funksjon som DynamoDB -strømmen kan utløse:
def lambda_handler (hendelse, kontekst):Denne funksjonen itererer gjennom postene i hendelsesobjektet og skriver ut det nye bildet av elementet i DynamoDB -tabellen som utløser funksjonen.
Trinn 5: Test lambda -funksjonen
For å teste en lambda -funksjon som en dynamoDB -strøm kan utløse, kan du bruke Boto3 bibliotek for å få tilgang til dynamoDB API og påkalle metode for Lambda klient for å utløse funksjonen.
Her er et eksempel på hvordan du gjør det:
Importer BOTO3Denne koden setter først inn et element i mytable bord og utløser deretter myfunksjon Lambda -funksjon ved å sende en prøvehendelselast til funksjonen ved hjelp av påkalle metode. Arrangementets nyttelast simulerer en DynamoDB Stream -hendelse som inkluderer det nye bildet av varen som nettopp ble satt inn.
Du kan deretter sjekke loggene på lambda -funksjonen for å se om den lykkes med å utløse og behandlet hendelsesdataene.
Konklusjon
Det er viktig å merke seg at du kan påkalle flere ganger for den samme strømoppføringen som en DynamoDB -strøm kan utløse en lambda -funksjon. Den viktigste grunnen bak dette er at strømopptakene til slutt er konsistente, og det er mulig å behandle den samme posten flere ganger med lambda -funksjonen. Det er avgjørende å designe Lambda -funksjonen din for å håndtere denne saken riktig.