AWS Lambda s Javom

1. Uvod

AWS Lambda je računalna usluga bez poslužitelja koju nudi Amazon za smanjenje konfiguracije poslužitelja, OS-a, skalabilnosti itd. AWS Lambda sposobna je izvršavati kod na AWS Cloudu.

Pokreće se kao odgovor na događaje na različitim AWS resursima, što pokreće funkcije AWS Lambda. Cijene se plaćaju, što znači da nećemo trošiti novac na neaktivne lambda funkcije.

Ovaj vodič zahtijeva valjani AWS račun; možete ga stvoriti ovdje.

2. Ovisnosti Mavena

Da bismo omogućili AWS lambda, potrebna nam je sljedeća ovisnost u našem projektu:

 com.amazonaws aws-lambda-java-core 1.1.0 

Ovu ovisnost možete pronaći u spremištu Maven.

Za izradu lambda aplikacije potreban nam je i dodatak Maven Shade:

 org.apache.maven.plugins maven-shadow-plugin 2.4.3 lažna nijansa paketa 

3. Stvori rukovatelj

Jednostavno rečeno, da bismo pozvali lambda funkciju, moramo odrediti rukovatelj; postoje 3 načina za stvaranje voditelja:

  1. Izrada običaja MethodHandler
  2. Provođenje RequestHandler sučelje
  3. Provođenje RequestStreamHandler sučelje

Pogledajmo kako to učiniti pomoću primjera koda.

3.1. Prilagođen MethodHandler

Stvorit ćemo metodu rukovatelja koja će biti ulazna točka za dolazne zahtjeve. Kao ulazne vrijednosti možemo koristiti format JSON ili primitivne vrste podataka.

Također, neobavezno Kontekst objekt omogućit će nam pristup korisnim informacijama dostupnim u izvršnom okruženju Lambda:

javna klasa LambdaMethodHandler {public String handleRequest (String input, Context context) {context.getLogger (). log ("Input:" + input); povratak "Hello World -" + ulaz; }}

3.2. RequestHandler Sučelje

Također možemo implementirati RequestHandler u naš razred i nadjačajte handleRequest metoda koja će biti naša ulazna točka za zahtjeve:

javna klasa LambdaRequestHandler implementira RequestHandler {javni String handleRequest (unos niza, kontekst konteksta) {context.getLogger (). log ("Ulaz:" + ulaz); povratak "Hello World -" + ulaz; }}

U tom će slučaju ulaz biti isti kao u prvom primjeru.

3.3. RequestStreamHandler Sučelje

Možemo i implementirati RequestStreamHandler u našem razredu i jednostavno nadjačajte handleRequest metoda.

Razlika je u tome InputStream, ObjectStream i Kontekst objekti se predaju kao parametri:

javna klasa LambdaRequestStreamHandler implementira RequestStreamHandler {public void handleRequest (InputStream inputStream, OutputStream outputStream, Context context) {String input = IOUtils.toString (inputStream, "UTF-8"); outputStream.write (("Hello World -" + input) .getBytes ()); }}

4. Izgradite datoteku za implementaciju

Uz sve konfigurirano, datoteku za postavljanje možemo stvoriti jednostavnim pokretanjem:

mvn čisti paket nijansa: hlad

The staklenka datoteka će se stvoriti pod cilj mapu.

5. Stvorite Lambda funkciju putem Upravljačke konzole

Prijavite se na AWS Amazon, a zatim kliknite Lambda u odjeljku usluge. Na ovoj će stranici biti prikazan popis lambda funkcija koji je već stvoren.

Evo koraka koji su potrebni za stvaranje naše lambde:

  1. “Odaberite nacrt” a zatim odaberite „Prazna funkcija "
  2. "Konfiguriranje okidača" (u našem slučaju nemamo okidače ili događaje)
  3. “Konfiguriraj funkciju”:
    • Ime: Navedite MethodHandlerLambda,
    • Opis: Sve što opisuje našu lambda funkciju
    • Runtime: Odaberite java8
    • Vrsta unosa koda i paket funkcija: Odaberite “Prenesite .ZIP i Jar datoteku ” i kliknite na “Učitaj" dugme. Odaberite datoteku koja sadrži lambda kôd.
    • Pod, ispod Rukovatelj i uloga Lambda funkcije:
      • Ime rukovatelja: Navedite ime obrađivača lambda funkcije com.baeldung.MethodHandlerLambda :: handleRequest
      • Naziv uloge: Ako se bilo koji drugi AWS resurs koristi u lambda funkciji, tada omogućite pristup stvaranjem / upotrebom postojeće uloge i također definirajte predložak politike.
    • Pod, ispod Napredne postavke:
      • Memorija: Osigurajte memoriju koju će koristiti naša lambda funkcija.
      • Istek vremena: Odaberite vrijeme za izvršavanje lambda funkcije za svaki zahtjev.
  4. Kada završite sa svim ulazima, kliknite “Sljedeći" koji će vam pokazati da pregledate konfiguraciju.
  5. Kada je pregled završen, kliknite na “Stvori funkciju ".

6. Pozovite funkciju

Jednom kada se stvori lambda funkcija AWS, testirat ćemo je unošenjem nekih podataka:

  • Kliknite svoju lambda funkciju s popisa, a zatim kliknite na “Test" dugme
  • Pojavit će se skočni prozor koji sadrži lažnu vrijednost za slanje podataka. Zamijenite podatke s "Baeldung"
  • Kliknite na "Spremi i testiraj ” dugme

Na zaslonu možete vidjeti Rezultat izvršenja odjeljak s uspješno vraćenim izlazom kao:

"Pozdrav svijetu - Baeldung"

7. Zaključak

U ovom kratkom uvodnom članku stvorili smo jednostavnu AWS Lambda aplikaciju pomoću Jave 8, rasporedili je na AWS i testirali.

Cjeloviti izvorni kod za primjer aplikacije nalazi se na Githubu.