AWS Lambda met Java

1. Inleiding

AWS Lambda is een serverloze computerservice die wordt aangeboden door Amazon om de configuratie van servers, OS, schaalbaarheid, enz. Te verminderen. AWS Lambda is in staat om code uit te voeren op AWS Cloud.

Het werkt als reactie op gebeurtenissen op verschillende AWS-bronnen, waardoor AWS Lambda-functies worden geactiveerd. De prijzen zijn pay-as-you-go, wat betekent dat we ons geld niet besteden aan inactieve lambda-functies.

Deze tutorial vereist een geldig AWS-account; u kunt er hier een aanmaken.

2. Maven afhankelijkheden

Om AWS lambda in te schakelen, hebben we de volgende afhankelijkheid nodig in ons project:

 com.amazonaws aws-lambda-java-core 1.1.0 

Deze afhankelijkheid is te vinden op de Maven-repository.

We hebben ook de Maven Shade-plug-in nodig om de lambda-applicatie te bouwen:

 org.apache.maven.plugins maven-shad-plugin 2.4.3 valse pakketschaduw 

3. Maak een handler

Simpel gezegd, om een ​​lambda-functie aan te roepen, moeten we een handler specificeren; er zijn 3 manieren om een ​​handler te maken:

  1. Een custom MethodHandler
  2. Implementatie van het RequestHandler koppel
  3. Implementatie van het RequestStreamHandler koppel

Laten we kijken hoe we dit moeten doen met behulp van codevoorbeelden.

3.1. Op maat MethodHandler

We zullen een handlermethode maken die het toegangspunt zal zijn voor inkomende verzoeken. We kunnen het JSON-formaat of primitieve gegevenstypen gebruiken als invoerwaarden.

Ook de optionele Context object zal ons toegang geven tot nuttige informatie die beschikbaar is binnen de Lambda-uitvoeringsomgeving:

openbare klasse LambdaMethodHandler {openbare tekenreeks handleRequest (tekenreeksinvoer, contextcontext) {context.getLogger (). log ("invoer:" + invoer); retourneer "Hallo wereld -" + invoer; }}

3.2. RequestHandler Koppel

We kunnen ook het RequestHandler in onze klas en negeer de handleRequest methode die ons toegangspunt zal zijn voor verzoeken:

openbare klasse LambdaRequestHandler implementeert RequestHandler {openbare tekenreeks handleRequest (tekenreeksinvoer, contextcontext) {context.getLogger (). log ("invoer:" + invoer); retourneer "Hallo wereld -" + invoer; }}

In dit geval is de invoer hetzelfde als in het eerste voorbeeld.

3.3. RequestStreamHandler Koppel

We kunnen ook implementeren RequestStreamHandler in onze klas en negeer gewoon de handleRequest methode.

Het verschil is dat InputStream, ObjectStream en Context objecten worden doorgegeven als parameters:

openbare klasse LambdaRequestStreamHandler implementeert RequestStreamHandler {openbare ongeldige handleRequest (InputStream inputStream, OutputStream outputStream, contextcontext) {String input = IOUtils.toString (inputStream, "UTF-8"); outputStream.write (("Hallo wereld -" + input) .getBytes ()); }}

4. Bouw een implementatiebestand

Nu alles is geconfigureerd, kunnen we het implementatiebestand maken door simpelweg het volgende uit te voeren:

mvn schoon pakket schaduw: schaduw

De pot bestand wordt aangemaakt onder de doelwit map.

5. Creëer Lambda-functie via beheerconsole

Log in bij AWS Amazon en klik vervolgens op Lambda onder services. Deze pagina toont de lijst met lambda-functies, die al is gemaakt.

Hier zijn de stappen die nodig zijn om onze lambda te maken:

  1. 'Selecteer blauwdruk' en selecteer vervolgens 'Blanco functie '
  2. 'Triggers configureren' (in ons geval hebben we geen triggers of gebeurtenissen)
  3. "Configureer functie":
    • Naam: verstrek MethodeHandlerLambda,
    • Beschrijving: alles dat onze lambda-functie beschrijft
    • Looptijd: Selecteer java8
    • Code-invoertype en functiepakket: Selecteer “Upload een zip- en jar-bestand ' en klik op “Uploaden" knop. Selecteer het bestand dat de lambda-code bevat.
    • Onder Lambda functie handler en rol:
      • Handlernaam: geef de naam van de lambda-functiehandler op com.baeldung.MethodHandlerLambda :: handleRequest
      • Rolnaam: als er andere AWS-bronnen worden gebruikt in de lambda-functie, geef dan toegang door een bestaande rol te maken / gebruiken en definieer ook de beleidssjabloon.
    • Onder Geavanceerde instellingen:
      • Geheugen: zorg voor geheugen dat zal worden gebruikt door onze lambda-functie.
      • Time-out: selecteer een tijd voor het uitvoeren van de lambda-functie voor elk verzoek.
  4. Als u klaar bent met alle invoer, klikt u op 'De volgende" die u zal laten zien om de configuratie te bekijken.
  5. Zodra een beoordeling is voltooid, klikt u op "Functie maken '.

6. Roep de functie op

Zodra de AWS-lambda-functie is gemaakt, zullen we deze testen door enkele gegevens door te geven:

  • Klik op uw lambda-functie uit lijsten en klik vervolgens op “Test" knop
  • Er verschijnt een pop-upvenster met een dummy-waarde voor het verzenden van gegevens. Overschrijf de gegevens met "Baeldung"
  • Klik op "Opslaan en testen ' knop

Op het scherm ziet u het Uitvoeringsresultaat sectie met succesvol geretourneerde uitvoer als:

"Hallo wereld - Baeldung"

7. Conclusie

In dit korte inleidende artikel hebben we een eenvoudige AWS Lambda-app gemaakt met Java 8, deze geïmplementeerd in AWS en getest.

De volledige broncode voor de voorbeeld-app is te vinden op Github.


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