AWS Lambda Používanie DynamoDB s Java

1. Úvod

AWS Lambda je serverová výpočtová služba poskytovaná spoločnosťou Amazon Web Services a WS DynamoDB je databázová služba NoSQL, ktorú poskytuje aj spoločnosť Amazon.

Je zaujímavé, že DynamoDB podporuje ukladanie dokumentov aj ukladanie kľúčov a hodnôt a je plne spravovaný spoločnosťou AWS.

Skôr ako začneme, nezabudnite, že tento výukový program vyžaduje platný účet AWS (môžete si ho vytvoriť tu). Tiež je dobré si najskôr prečítať článok AWS Lambda with Java.

2. Maven závislosti

Na povolenie lambda potrebujeme nasledujúcu závislosť, ktorú nájdete v Maven Central:

 com.amazonaws aws-lambda-java-core 1.1.0 

Ak chcete použiť rôzne zdroje AWS, potrebujeme nasledujúcu závislosť, ktorú tiež nájdete na serveri Maven Central:

 com.amazonaws aws-lambda-java-events 1.3.0 

Na zostavenie aplikácie použijeme doplnok Maven Shade:

 org.apache.maven.plugins maven-shad-plugin 3.0.0 falošný balík odtieň 

3. Lambda kód

Existujú rôzne spôsoby vytvárania obslužných programov v aplikácii lambda:

  • MethodHandler
  • RequestHandler
  • RequestStreamHandler

Použijeme RequestHandler rozhranie v našej aplikácii. Prijmeme PersonRequest vo formáte JSON a odpoveď bude PersonResponse aj v JSON formát:

public class PersonRequest {private String firstName; private String priezvisko; // štandardné getre a setre} 
public class PersonResponse {private String message; // štandardné getre a setre}

Ďalej je to naša trieda vstupných bodov, ktorá sa bude implementovať RequestHandler rozhranie ako:

verejná trieda SavePersonHandler implementuje RequestHandler {súkromný DynamoDB dynamoDb; private String DYNAMODB_TABLE_NAME = "Osoba"; súkromné ​​regióny REGION = Regions.US_WEST_2; public PersonResponse handleRequest (PersonRequest personRequest, kontextový kontext) {this.initDynamoDbClient (); persistData (personRequest); PersonResponse personResponse = nový PersonResponse (); personResponse.setMessage ("Úspešne uložené !!!"); návratová osobaOdpoveď; } private PutItemOutcome persistData (PersonRequest personRequest) hodí ConditionalCheckFailedException {return this.dynamoDb.getTable (DYNAMODB_TABLE_NAME) .putItem (new PutItemSpec (). withItem (new Item () .withString ("firstName", personRequest.getF) "lastName", personRequest.getLastName ());} private void initDynamoDbClient () {AmazonDynamoDBClient client = new AmazonDynamoDBClient (); client.setRegion (Region.getRegion (REGION)); this.dynamoDb = nový DynamoDB (klient);}} 

Tu, keď implementujeme RequestHandler musíme implementovať handleRequest () za samotné vybavenie žiadosti. Čo sa týka zvyšku kódu, máme:

  • PersonRequest objekt - ktorý bude obsahovať hodnoty požiadaviek odovzdané vo formáte JSON
  • Kontext objekt - slúži na získanie informácií z prostredia na vykonávanie lambda
  • PersonResponse - ktorý je objektom odpovede na požiadavku lambda

Pri vytváraní objektu DynamoDB najskôr vytvoríme AmazonDynamoDBClient objekt a použite ho na vytvorenie a DynamoDB objekt. Všimnite si, že regiónu Je povinné.

Na pridanie položiek do tabuľky DynamoDB použijeme a PutItemSpec objekt - zadaním počtu stĺpcov a ich hodnôt.

V tabuľke DynamoDB nepotrebujeme žiadnu preddefinovanú schému, stačí definovať názov stĺpca Primárny kľúč, ktorý je „Id“ v našom prípade.

4. Vytvorenie súboru nasadenia

Na zostavenie aplikácie lambda musíme vykonať nasledujúci príkaz Maven:

mvn čisté balenie odtieň: odtieň

Aplikácia lambda bude zostavená a zabalená do súboru jar súbor v cieľovom priečinku.

5. Vytvorenie tabuľky DynamoDB

Podľa týchto pokynov vytvorte tabuľku DynamoDB:

  • Prihláste sa do účtu AWS
  • Kliknite „DynamoDB“ ktoré sa môžu nachádzať pod „Všetky služby“
  • Na tejto stránke sa zobrazia už vytvorené tabuľky DynamoDB (ak existujú)
  • Kliknite „Create Table“ tlačidlo
  • Poskytnite „Názov tabuľky“ a "Primárny kľúč" s jeho údajovým typom ako „Number“
  • Kliknite na „Vytvoriť“ tlačidlo
  • Bude vytvorená tabuľka

6. Vytvorenie funkcie Lambda

Podľa týchto pokynov vytvoríte funkciu Lambda:

  • Prihláste sa do účtu AWS
  • Kliknite „Lambda“ ktoré sa môžu nachádzať pod „Všetky služby“
  • Na tejto stránke sa zobrazia už vytvorené funkcie Lambda (ak nejaké sú) alebo nie sú vytvorené žiadne funkcie Lambda. Kliknite na "Začni teraz"
  • „Select blueprint“ -> Vyberte „Prázdna funkcia “
  • „Konfigurovať spúšťače“ -> Kliknite "Ďalšie" tlačidlo
  • „Konfigurovať funkciu“
    • "Názov": SavePerson
    • „Popis“: Uložiť osobu do DDB
    • "Beh programu": Vyberte „Java 8“
    • „Nahrať“: Kliknite „Nahrať“ a vyberte súbor jar aplikácie lambda
  • „Handler“: com.baeldung.lambda.dynamodb.SavePersonHandler
  • „Rola“: Vyberte „Create a custom role“
  • Zobrazí sa nové okno, ktoré umožní konfiguráciu role IAM na vykonávanie lambda a my do nej musíme pridať granty DynamoDB. Po dokončení kliknite na ikonu „Povoliť“ tlačidlo
  • Kliknite "Ďalšie" tlačidlo
  • "Preskúmanie": Skontrolujte konfiguráciu
  • Kliknite „Vytvoriť funkciu“ tlačidlo

7. Testovanie funkcie lambda

Ďalším krokom je otestovanie funkcie lambda:

  • Kliknite na ikonu „Test“ tlačidlo
  • The „Vstupná testovacia udalosť“ Zobrazí sa okno. Tu poskytneme vstup JSON pre našu požiadavku:
{"id": 1, "firstName": "John", "lastName": "Doe", "age": 30, "address": "USA"}
  • Kliknite „Uložiť a otestovať“ alebo „Uložiť“ tlačidlo
  • Výstup je možné vidieť na „Výsledok vykonania“ časť:
{"message": "Uložené úspešne !!!" }
  • Musíme tiež skontrolovať v DynamoDB, či záznam pretrváva:
    • Ísť do Konzola pre správu „DynamoDB“
    • Vyberte tabuľku „Osoba“
    • Vyberte ikonu „Položky“ tab
    • Tu vidíte podrobnosti o osobe, ktoré boli odoslané v žiadosti do aplikácie lambda
  • Žiadosť je teda úspešne spracovaná našou aplikáciou lambda

8. Záver

V tomto rýchlom článku sme sa naučili, ako vytvoriť aplikáciu Lambda s programami DynamoDB a Java 8. Podrobné pokyny by vám mali poskytnúť náskok pri nastavovaní všetkého.

Celý zdrojový kód príkladnej aplikácie nájdete ako vždy na serveri Github.


$config[zx-auto] not found$config[zx-overlay] not found