aws-lambdaAan de slag met aws-lambda


Opmerkingen

AWS Lambda is een serverloze installatie voor het uitvoeren van functies in de cloud. Het maakt gebruik van bestaande Amazon Web Services-technologieën om oneindig te schalen en alleen te draaien wanneer dat nodig is in een eigen geïsoleerde omgeving. Met Lambda kunt u uw code uploaden, configureren om te worden uitgevoerd op basis van verschillende triggers en het proces vervolgens automatisch buiten gebruik stellen. Het werkt volgens een pay-per-use-model en is uiterst kosteneffectief en eenvoudig op te schalen.


AWS Lambda ondersteunt code geschreven in Node.js (JavaScript), Python, Java (compatibel met Java 8) en C # (.NET Core). Uw code kan bestaande bibliotheken bevatten, zelfs native.

Triggers kunnen zijn:

HTTP-eindpunten

  • Mobiele apps
  • Andere AWS-services (inclusief REST-implementatie met Amazon API Gateway)

Lambda is het best ontworpen voor realtime serverloze gegevensverwerking zoals:

  • Bestandsverwerking van uploads
    • transcoderen
    • Indexeren
    • bevestiging
    • Formaat wijzigen en filteren
  • Streaming data-analyse
  • Telemetrie
  • Uitvoeren als een methode-gebaseerde mobiele en web-backend
  • Andere AWS-producten uitbreiden en koppelen

Installatie of instellingen

  1. Log in op uw AWS-console en klik op Lambda onder het tabblad Services .

  2. Onder Functies kun je een Lambda-functie maken met dezelfde knop. voer hier de afbeeldingsbeschrijving in

  3. U krijgt een scherm te zien waar u een blauwdruk kunt selecteren. Dit zijn gewoon startpunten voor bestaande Lambda-functies om snel met Lambda te beginnen. voer hier de afbeeldingsbeschrijving in

  4. Op het volgende scherm kunt u alle triggers die u wilt gebruiken configureren om deze Lambda-functie uit te schakelen. U kunt kiezen tussen geen triggers (via handmatige installatie later, afhankelijk van uw taak), API Gateway (voor het maken van een serverloze REST-client), Alexa Skills of een overvloed aan andere anderen om de functie die u maakt te activeren. voer hier de afbeeldingsbeschrijving in

  5. U beëindigt de configuratie op het volgende scherm door de naam , beschrijving in te stellen , een runtime te kiezen, ervoor te kiezen de functie inline te bewerken, een zip-bestand te uploaden of een bestand van Amazon S3 te uploaden, een rol te kiezen (handig voor op machtigingen gebaseerde interactie tussen AWS-services), stel het geheugen en de limieten in en maak uw app gereed voor live gebruik. voer hier de afbeeldingsbeschrijving in voer hier de afbeeldingsbeschrijving in

  6. Ten slotte zult u uw functie herzien en maken. Aangezien Lambda het Pay-Per-Use-model gebruikt, worden er geen laders gemaakt totdat u uw nieuw gecreëerde functie begint te gebruiken. voer hier de afbeeldingsbeschrijving in

Java AWS-Lambda S3 geactiveerd

Een AWS-Lambda-functie kan worden gekoppeld aan een bepaalde bucket-gebeurtenis. Wanneer een bestand / map wordt gemaakt of verwijderd, kan een gebeurtenis de uitvoering van de lambdafunctie activeren.

Een eenvoudige Lambda-functie om de naam van een geüpload bestand af te drukken

Dit is een lambda-project van één klasse om de naam van een geüpload bestand af te drukken. Voor maven moeten we die afhankelijkheden toevoegen:

    <dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.1.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>1.3.0</version>
        <type>jar</type>
    </dependency>
</dependencies>
 

Laten we nu naar onze HelloWorld Class gaan:

package com;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.event.S3EventNotification;

public class HelloWorld implements RequestHandler< S3Event, String> {
    @Override
    public String handleRequest(S3Event event, Context ctx) {
     S3EventNotification.S3EventNotificationRecord record=event.getRecords().get(0);
     System.out.println("Bucket Name is "+record.getS3().getBucket().getName());
     System.out.println("File Path is "+record.getS3().getObject().getKey());
     return null;
    }
}
 

De volgende stap is om het project te bouwen met behulp van MVN.

Na het bouwen van het project moeten we het uploaden naar AWS-Lambda. Ga naar Lambda, kies "maak een lambdafunctie". Sla het deel over waar u de blauwdruk kiest, omdat Java er meestal niet is.

Sla ook "Triggers configureren" over, omdat we deze vanaf een andere locatie configureren. Op de volgende pagina voert u een naam in voor uw eerste lambdafunctie, vervolgens een korte beschrijving en kiest u Java als runtime.

Voor het "Code-invoertype" kiest u "Uploaden vanuit een .ZIP-bestand" en selecteert u vervolgens uw .zip-bestand op de volgende locatie om het te uploaden.

Het lastige deel op deze pagina is het veld Handler. In het handlerveld moet u de locatie opgeven van de klasse die de RequestHandler implementeert. Deze klasse is het toegangspunt voor de lambda en uw Lambda-functie werkt niet als deze niet correct is opgegeven. Voor onze case handler is "com.HelloWorld"

Een S3-trigger aan Lambda bevestigen:

Hier zullen we een trigger toevoegen aan de upload van het S3-bestand

  • Ga naar S3, kies de emmer en vervolgens "Eigenschappen".
  • Ga in het gedeelte "Eigenschappen" naar "Evenementen".
  • Voeg afspraakdetails toe. Kies in het veld "Evenementen" hoe u uw Lambda wilt activeren. We kiezen "ObjectCreated (All)" Merk op dat de lambdafunctie en de bucket zich in hetzelfde Amazonegebied moeten bevinden
  • Voor "Verzenden naar" vinkt u Lambdafunctie aan en kiest u uw lambdafunctie in de lijst.

Lambda-uitgang bewaken

Nu zullen we een bestand uploaden naar de bucket met de lambda-trigger. Om de lambda-uitgangen en logboeken te bekijken, ga naar "CloudWatch", kies vervolgens "Logs" en kies vervolgens uw Lambda-functie. U ziet mogelijk veel vermeldingen onder "Logstreams", kies de nieuwste en open deze. Je zou daar de uitvoer van de lambda-uitvoering moeten kunnen zien.