AWS Lambda a DynamoDB Java használatával

1. Bemutatkozás

Az AWS Lambda egy szerver nélküli számítási szolgáltatás, amelyet az Amazon Web Services nyújt, a WS DynamoDB pedig az NoSQL adatbázis-szolgáltatás, amelyet az Amazon is nyújt.

Érdekes módon a DynamoDB támogatja mind a dokumentumtárolót, mind a kulcsérték-tárolót, és teljes mértékben az AWS kezeli.

Mielőtt elkezdenénk, vegye figyelembe, hogy ehhez az oktatóanyaghoz érvényes AWS-fiókra van szükség (itt létrehozhat egyet). Célszerű először elolvasni az AWS Lambda with Java cikket is.

2. Maven-függőségek

A lambda engedélyezéséhez a következő függőségre van szükségünk, amely megtalálható a Maven Central-on:

 com.amazonaws aws-lambda-java-core 1.1.0 

Különböző AWS erőforrások használatához a következő függőségre van szükségünk, amely a Maven Centralon is megtalálható:

 com.amazonaws aws-lambda-java-events 1.3.0 

Az alkalmazás elkészítéséhez pedig a Maven Shade beépülő modult fogjuk használni:

 org.apache.maven.plugins maven-shadow-plugin 3.0.0 hamis csomagárnyékolás 

3. Lambda kód

A lambda alkalmazásban a kezelők létrehozásának különböző módjai vannak:

  • MethodHandler
  • RequestHandler
  • RequestStreamHandler

Használni fogjuk RequestHandler felület az alkalmazásunkban. Elfogadjuk a PersonRequest JSON formátumban, és a válasz lesz PersonResponse ben is JSON formátum:

public class PersonRequest {private String keresztnév; privát karakterlánc vezetéknév; // szabványos mérőeszközök és beállítók} 
public class PersonResponse {private String üzenet; // szabványos mérőeszközök és beállítók}

A következő a belépési pont osztályunk, amelyet megvalósítani fogunk RequestHandler interfész:

public class SavePersonHandler végrehajtja a RequestHandler {private DynamoDB dynamoDb; privát karakterlánc DYNAMODB_TABLE_NAME = "Személy"; privát régiók REGION = régiók.US_WEST_2; public PersonResponse handleRequest (PersonRequest personRequest, Context context) {this.initDynamoDbClient (); persistData (personRequest); PersonResponse personResponse = új PersonResponse (); personResponse.setMessage ("Sikeresen mentve !!!"); return personResponse; } private PutItemOutcome persistData (PersonRequest personRequest) dobja a ConditionalCheckFailedException {return this.dynamoDb.getTable (DYNAMODB_TABLE_NAME) .putItem (new PutItemSpec (). withItem (new Item () .withString ("firstName.get) (personRequest)". "vezetéknév", personRequest.getLastName ());} private void initDynamoDbClient () {AmazonDynamoDBClient client = new AmazonDynamoDBClient (); client.setRegion (Region.getRegion (REGION)); this.dynamoDb = new DynamoDB (client)}; 

Itt, amikor megvalósítjuk a RequestHandler interfészt, végre kell hajtanunk handleRequest () a kérelem tényleges feldolgozásához. Ami a kód többi részét illeti:

  • PersonRequest objektum - amely tartalmazza a JSON formátumban továbbított kérési értékeket
  • Kontextus objektum - arra szolgál, hogy információkat szerezzen a lambda végrehajtási környezetből
  • PersonResponse - amely a lambda kérés válaszobjektuma

DynamoDB objektum létrehozásakor először a AmazonDynamoDBClient objektumot, és ezzel létrehozhatja a DynamoDB tárgy. Vegye figyelembe, hogy a vidék kötelező.

Elemek hozzáadásához a DynamoDB táblába a PutItemSpec objektum - az oszlopok számának és értékeinek megadásával.

Nincs szükségünk előre definiált sémára a DynamoDB táblában, csak meg kell határoznunk az Elsődleges kulcs oszlop nevét, amely „Id” a mi esetünkben.

4. A telepítési fájl felépítése

A lambda alkalmazás felépítéséhez a következő Maven parancsot kell végrehajtanunk:

mvn tiszta csomagolás árnyalata: árnyék

A Lambda alkalmazást összeállítják és a befőttes üveg fájlt a célmappába.

5. A DynamoDB táblázat létrehozása

Kövesse az alábbi lépéseket a DynamoDB tábla létrehozásához:

  • Jelentkezzen be az AWS-fiókba
  • Kattintson a gombra „DynamoDB” alatt található „Minden szolgáltatás”
  • Ezen az oldalon a már létrehozott DynamoDB táblák jelennek meg (ha vannak)
  • Kattintson a gombra "Táblázat létrehozása" gomb
  • Biztosítani „Asztal neve” és "Elsődleges kulcs" az adattípusával "Szám"
  • Kattintson "Teremt" gomb
  • A táblázat létrejön

6. A Lambda funkció létrehozása

Kövesse az alábbi lépéseket a Lambda függvény létrehozásához:

  • Jelentkezzen be az AWS-fiókba
  • Kattintson a gombra „Lambda” alatt található „Minden szolgáltatás”
  • Ezen az oldalon a már létrehozott Lambda függvény jelenik meg (ha van ilyen), vagy nincsenek létrehozva lambda funkciók, kattintson rá "Kezd el most"
  • „Tervrajz kiválasztása” -> Válassza a “Üres funkció ”
  • „Aktiválók konfigurálása” -> Kattintson "Következő" gomb
  • „Funkció konfigurálása”
    • "Név": SavePerson
    • "Leírás": Személy mentése a DDB-be
    • „Futásidejű”: Válassza a lehetőséget „Java 8”
    • „Feltöltés”: Kattintson „Feltöltés” gombra, és válassza ki a lambda alkalmazás jar fájlját
  • „Kezelő”: com.baeldung.lambda.dynamodb.SavePersonHandler
  • "Szerep": Válassza a lehetőséget „Egyéni szerepkör létrehozása”
  • Egy új ablak jelenik meg, amely lehetővé teszi az IAM szerepkör konfigurálását a lambda végrehajtásához, és hozzá kell adnunk a DynamoDB támogatásokat. Ha elkészült, kattintson a gombra "Lehetővé teszi" gomb
  • Kattintson a gombra "Következő" gomb
  • "Felülvizsgálat": Ellenőrizze a konfigurációt
  • Kattintson a gombra „Funkció létrehozása” gomb

7. A Lambda funkció tesztelése

A következő lépés a lambda függvény tesztelése:

  • Kattints a "Teszt" gomb
  • A „Bemeneti tesztesemény” ablak jelenik meg. Itt megadjuk a JSON bemenetet kérésünkhöz:
{"id": 1, "firstName": "John", "lastName": "Doe", "age": 30, "address": "Egyesült Államok"}
  • Kattintson a gombra „Mentés és tesztelés” vagy "Mentés" gomb
  • A kimenet látható „Végrehajtási eredmény” szakasz:
{"message": "Sikeresen mentve !!!" }
  • Azt is ellenőriznünk kell a DynamoDB-ben, hogy a rekord megmaradt-e:
    • Menj „DynamoDB” menedzsment konzol
    • Válassza ki a táblázatot "Személy"
    • Válaszd ki a „Tételek” fülre
    • Itt láthatja a személy adatait, amelyeket a lambda alkalmazáshoz továbbítottak
  • Tehát a kérelmet lambda alkalmazásunk sikeresen feldolgozza

8. Következtetés

Ebben a rövid cikkben megtanultuk, hogyan kell létrehozni a Lambda alkalmazást a DynamoDB és a Java 8 alkalmazással. A részletes utasításoknak előrelépést kell nyújtaniuk minden beállításában.

És mint mindig, a példaalkalmazás teljes forráskódja megtalálható a Githubon.


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