aws-lambda Zelfstudie
Aan de slag met aws-lambda
Zoeken…
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
Log in op uw AWS-console en klik op Lambda onder het tabblad Services .
Onder Functies kun je een Lambda-functie maken met dezelfde knop.
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.
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.
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.
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.
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.