AWS Lambda med Java

1. Introduktion

AWS Lambda er en serverløs computertjeneste, der leveres af Amazon for at reducere konfigurationen af ​​servere, OS, skalerbarhed osv. AWS Lambda er i stand til at udføre kode på AWS Cloud.

Den kører som reaktion på begivenheder på forskellige AWS-ressourcer, hvilket udløser AWS Lambda-funktioner. Prissætning er pay-as-you-go, hvilket betyder, at vi ikke afskalder vores penge på inaktiv lambda-funktioner.

Denne tutorial kræver en gyldig AWS-konto; du kan oprette en her.

2. Maven-afhængigheder

For at aktivere AWS lambda har vi brug for følgende afhængighed i vores projekt:

 com.amazonaws aws-lambda-java-core 1.1.0 

Denne afhængighed kan findes i Maven repository.

Vi har også brug for Maven Shade Plugin til at opbygge lambda-applikationen:

 org.apache.maven.plugins maven-skygge-plugin 2.4.3 falsk pakke skygge 

3. Opret håndterer

Kort sagt, for at påkalde en lambda-funktion er vi nødt til at angive en handler; der er 3 måder at oprette en handler på:

  1. Oprettelse af en brugerdefineret MethodHandler
  2. Implementering af RequestHandler interface
  3. Implementering af RequestStreamHandler interface

Lad os se, hvordan man gør det ved hjælp af kodeeksempler.

3.1. Brugerdefinerede MethodHandler

Vi opretter en behandlingsmetode, der vil være indgangsstedet for indgående anmodninger. Vi kan bruge JSON-format eller primitive datatyper som inputværdier.

Også det valgfri Sammenhæng objekt giver os adgang til nyttige oplysninger tilgængelige i Lambda-eksekveringsmiljøet:

offentlig klasse LambdaMethodHandler {public String handleRequest (String input, Context context) {context.getLogger (). log ("Input:" + input); returner "Hello World -" + input; }}

3.2. RequestHandler Interface

Vi kan også implementere RequestHandler ind i vores klasse og tilsidesætte handleRequest metode, der vil være vores startpunkt for anmodninger:

offentlig klasse LambdaRequestHandler implementerer RequestHandler {public String handleRequest (String input, Context context) {context.getLogger (). log ("Input:" + input); returner "Hello World -" + input; }}

I dette tilfælde vil input være det samme som i det første eksempel.

3.3. RequestStreamHandler Interface

Vi kan også implementere RequestStreamHandler i vores klasse og blot tilsidesætte handleRequest metode.

Forskellen er, at InputStream, ObjectStream og Sammenhæng objekter sendes som parametre:

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

4. Byg implementeringsfil

Med alt konfigureret kan vi oprette installationsfilen ved blot at køre:

mvn ren pakke skygge: skygge

Det krukke fil oprettes under mål folder.

5. Opret Lambda-funktion via Management Console

Log ind på AWS Amazon, og klik derefter på Lambda under tjenester. Denne side viser listen over lambdafunktioner, som allerede er oprettet.

Her er de trin, der kræves for at oprette vores lambda:

  1. "Vælg tegning" og vælg derefter “Tom funktion ”
  2. “Konfigurer udløsere” (i vores tilfælde har vi ingen udløsere eller begivenheder)
  3. “Konfigurer funktion”:
    • Navn: Giv MetodeHåndtererLambda,
    • Beskrivelse: Alt, hvad der beskriver vores lambda-funktion
    • Runtime: Vælg java8
    • Kodeindtastningstype og funktionspakke: Vælg “Upload en .ZIP- og Jar-fil ” og klik på “Upload ” knap. Vælg den fil, der indeholder lambda-kode.
    • Under Lambda-funktionshåndterer og rolle:
      • Handlernavn: Angiv navn på lambdafunktionshåndterer com.baeldung.MethodHandlerLambda :: handleRequest
      • Rollenavn: Hvis der bruges andre AWS-ressourcer i lambda-funktionen, skal du give adgang ved at oprette / bruge eksisterende rolle og også definere politikskabelonen.
    • Under Avancerede indstillinger:
      • Hukommelse: Giv hukommelse, der vil blive brugt af vores lambda-funktion.
      • Timeout: Vælg et tidspunkt for udførelse af lambda-funktionen for hver anmodning.
  4. Når du er færdig med alle input, skal du klikke på “Næste" som viser dig at gennemgå konfigurationen.
  5. Når en anmeldelse er afsluttet, skal du klikke på “Opret funktion ”.

6. Påkald funktionen

Når AWS lambda-funktionen er oprettet, tester vi den ved at videregive nogle data:

  • Klik på din lambda-funktion fra lister, og klik derefter på “Prøve" knap
  • Et popup-vindue vises, der indeholder dummy-værdi til afsendelse af data. Tilsidesæt dataene med “Baeldung”
  • Klik på "Gem og test ” knap

På skærmen kan du se Udførelsesresultat sektion med vellykket returneret output som:

"Hello World - Baeldung"

7. Konklusion

I denne hurtige introduktionsartikel har vi oprettet en simpel AWS Lambda-app ved hjælp af Java 8, implementeret den til AWS og testet den.

Den fulde kildekode til eksempelappen kan findes på Github.


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