Lag en AWS Lambda-funksjon som kan lytte på filer som blir lastet opp til en S3-bøtte. Lambda-funksjonen skal bruke "upload eventet" til å lese den opplastede filen fra S3-bøtta. Den skal så skrive innholdet i filen til en DynamoDB-tabell.
NB: Bruk gjerne eget navn på alle AWS-ressurser slik du lett kan skille dine resurser fra andres.
- Opprett en S3 bøtte (med default settings). Navnet til S3-bøtta må være globalt unikt.
- Opprett en DynamoDB tabell
- "Partition key" skal hete:
id
(la "Sort key" stå blankt). - Ellers bare default settings på alt.
- "Partition key" skal hete:
- Opprett en AWS Lambda funksjon (bruk Python 3.9)
- Fjern autogenerert kode og lim inn kode for oppgave 1.
- I koden du nettopp limte inn; skriv inn navn på din DynamoDB-tabell (linje 8) og navn på din S3-bøtte (linje 9).
- Gå til IAM, finn IAM-rollen med samme navn som din Lambda funksjon (dette er Lambda-funksjonens "execution role"). For at din Lambda funksjon skal få tilgang til din DynamoDB-tabell og S3-bøtte, må vi legge til følgende IAM-policies på denne IAM-rollen:
AmazonS3ReadOnlyAccess
AmazonDynamoDBFullAccess
- Gå tilbake til din AWS Lambda-funksjon.
- Legg til Lambda Trigger:
- Velg
S3
og din S3-bøtte. - Lytt på følgende event:
All object create events
. - Les og huk av check-box for "Recursive invocation".
- Velg
- Gå tilbake til kode-vindu og klikk "Deploy" for å deploye alle endringer i din Lambda funksjon.
- Gå tilbake til S3-bøtten din.
- Last opp vedlagt fil (eller en annen JSON fil).
- Se at innholdet blir skrevet til DynamoDB-tabellen din.
Nå skal vi opprette en API Gateway som kan kalle på en Lambda funksjon. Denne Lambda funksjonen skal returnere ett objekt (basert på id-en) fra tabellen du opprettet i oppgave 1.
- Lag en ny AWS Lambda-funksjon
- Lim inn kode for oppgave 2
- I koden du nettopp limte inn; skriv inn navn på din DynamoDB-tabell (linje 5).
- Finn IAM-rollen til denne Lambda funksjonen og legg til følgende IAM policy:
AmazonDynamoDBReadOnlyAccess
- Gå tilbake til Lambda-funksjonen og klikk "Deploy"
- Opprett en HTTP API Gateway:
- I "Step 1": Legg til en Lambda-integrasjon, denne skal peke på din nye Lambda-funksjon.
- I "Step 2": Velg GET som HTTP metode og definer ønsket path, inkludert et path parameter som heter
id
f.eks:/birds/{id}
. - I "Step 3": Fortsett uten å gjøre noen endrigner.
- I "Step 4": Klikk "Create".
- Test endepunktet ved å kalle "Invoke URL" som er vist i API Gateway-en.
NB: Husk å legge til resource path og id-en til et objekt som path parameter.
- Lag en AWS Lambda funksjon som kan trigges av meldinger på en SQS-kø.
- Lag en AWS Lambda funksjon som kan sende meldinger til et SNS-topic.
- Oppgave 1: Lambda trigger on s3 upload event
- Oppgave 2: API Gateway with lambda integration
- Ekstraoppgave 1: Lambda trigger on SQS messages
- Ekstraoppgave 2: Send meldinger fra en Lambda funksjon til et SNS-topic