aws-lambda Tutorial
Iniziare con aws-lambda
Ricerca…
Osservazioni
AWS Lambda è una configurazione senza server per l'esecuzione di funzioni nel cloud. Sfrutta le tecnologie esistenti di Amazon Web Services per scalare e funzionare all'infinito solo quando necessario nel proprio ambiente isolato. Usando Lambda, puoi caricare il tuo codice, configurarlo per l'esecuzione in base a una serie di trigger e quindi rimuovere automaticamente il processo una volta completato. Funziona su un modello pay-per-use ed è estremamente economico e facile da scalare.
AWS Lambda supporta il codice scritto in Node.js (JavaScript), Python, Java (compatibile con Java 8) e C # (.NET Core). Il tuo codice può includere librerie esistenti, anche native.
I trigger possono includere:
Endpoint HTTP
- App per dispositivi mobili
- Altri servizi AWS (compresa l'implementazione REST con Amazon API Gateway)
Lambda è meglio progettato per l'elaborazione dei dati serverless in tempo reale come:
- Elaborazione di file di caricamenti
- transcodifica
- indicizzazione
- Validazione
- Ridimensionamento e filtro
- Streaming analisi dei dati
- telemetria
- Esegui come back-end mobile e web basato su metodo
- Estensione e collegamento di altri prodotti AWS
Installazione o configurazione
Accedi alla tua Console AWS e fai clic su Lambda nella scheda Servizi .
Sotto Funzioni sarete in grado di creare una funzione Lambda usando il pulsante con lo stesso nome.
Ti verrà mostrata una schermata in cui è possibile selezionare un progetto. Questi sono semplicemente i punti di partenza per le funzioni Lambda esistenti per l'avvio rapido con Lambda.
Nella schermata successiva è possibile configurare i trigger che si desidera utilizzare per "disattivare" questa funzione Lambda. Puoi scegliere tra nessun trigger (tramite l'impostazione manuale successiva a seconda dell'attività), il gateway API (per la creazione di un client REST senza server), Alexa Skills o una pletora di altri per attivare la funzione che creerai.
Terminerai la configurazione nella schermata successiva impostando Nome , Descrizione , scegliendo un Runtime , scegliendo di modificare la funzione in linea, caricando un file .zip o caricando un file da Amazon S3, scegli un ruolo (utile per le autorizzazioni basate interazione tra i servizi AWS), imposta memoria e limiti e prepara la tua app per l'uso live.
Infine, rivedrai la tua funzione e la creerai. Dal momento che Lambda utilizza il modello Pay-Per-Use, nessun caricatore viene utilizzato fino a quando non si inizia a utilizzare la funzione appena creata.
Java AWS-Lambda S3 innescato
Una funzione AWS-Lambda può essere associata a un determinato evento bucket. Ogni volta che un file / cartella viene creato o rimosso, un evento può attivare l'esecuzione della funzione lambda.
Una semplice funzione Lambda per stampare il nome di un file caricato
Questo è un progetto lambda di una classe per stampare il nome di un file caricato. Per Maven abbiamo bisogno di aggiungere quelle dipendenze:
<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>
Ora andiamo alla nostra classe HelloWorld:
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;
}
}
Il prossimo passo è costruire il progetto usando mvn.
Dopo aver creato il progetto, dobbiamo caricarlo su AWS-Lambda. Vai a Lambda, scegli "crea una funzione lambda". Salta la parte in cui scegli il modello, perché di solito Java non è presente.
Inoltre, salta "Configura trigger" perché lo configureremo da una posizione diversa. Nella pagina successiva, inserisci un nome per la tua prima funzione lambda, quindi una piccola descrizione e scegli Java come runtime.
Per il "Tipo di immissione codice", scegli "Carica da un file .ZIP" e quindi seleziona il tuo file .zip nel percorso successivo per caricarlo.
La parte difficile in questa pagina è il campo Handler. Nel campo del gestore, è necessario specificare la posizione della classe che implementa RequestHandler. Questa classe è il punto di ingresso per lambda e la tua funzione Lambda non funzionerà se questo non è specificato correttamente. Per il nostro gestore del caso è "com.HelloWorld"
Attaccare un grilletto S3 a Lambda:
Qui inseriremo un trigger per il caricamento del file S3
- Vai a S3, scegli il bucket, quindi "Proprietà".
- Nella sezione "Proprietà", vai su "Eventi".
- Aggiungi i dettagli dell'evento. Nel campo "Eventi", scegli come vuoi attivare il tuo Lambda. Scegliamo "ObjectCreated (Tutti)" Si noti che la funzione lambda e il bucket devono essere nella stessa regione amazon
- Per "Invia a", controlla la funzione Lambda e scegli la funzione lambda dall'elenco.
Monitoraggio dell'output Lambda
Ora, caricheremo un file nel bucket che ha il trigger lambda. Per vedere gli output e i log lambda, andare su "CloudWatch", quindi selezionare "Log", quindi selezionare la funzione Lambda. Potresti vedere molte voci sotto "Log Stream", scegliere l'ultima e aprirla. Dovresti essere in grado di vedere l'output dell'esecuzione lambda lì.