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.