aws-lambda Samouczek
Rozpoczęcie pracy z aws-lambda
Szukaj…
Uwagi
AWS Lambda to bezserwerowa konfiguracja do wykonywania funkcji w chmurze. Wykorzystuje istniejące technologie Amazon Web Services do nieskończonego skalowania i uruchamiania tylko wtedy, gdy jest to konieczne, w jego odizolowanym środowisku. Korzystając z Lambda, możesz przesłać swój kod, skonfigurować go do działania w oparciu o różne wyzwalacze, a następnie automatycznie zakończyć proces po zakończeniu. Działa w modelu pay-per-use i jest niezwykle opłacalny i łatwy do skalowania.
AWS Lambda obsługuje kod napisany w Node.js (JavaScript), Python, Java (kompatybilny z Java 8) i C # (.NET Core). Twój kod może zawierać istniejące biblioteki, nawet rodzime.
Wyzwalacze mogą obejmować:
Punkty końcowe HTTP
- Aplikacje mobilne
- Inne usługi AWS (w tym implementacja REST z Amazon API Gateway)
Lambda jest najlepiej zaprojektowana do przetwarzania danych bez użycia serwera w czasie rzeczywistym, takiego jak:
- Przetwarzanie plików przesłanych plików
- Transkodowanie
- Indeksowanie
- Uprawomocnienie
- Zmiana rozmiaru i filtrowanie
- Analiza danych strumieniowych
- Telemetria
- Działaj jako mobilny i internetowy backend oparty na metodach
- Rozszerzanie i łączenie innych produktów AWS
Instalacja lub konfiguracja
Zaloguj się do konsoli AWS i kliknij Lambda w zakładce Usługi .
W obszarze Funkcje możesz utworzyć funkcję Lambda za pomocą przycisku o tej samej nazwie.
Zostanie wyświetlony ekran, w którym możesz wybrać plan. Są to po prostu punkty wyjścia do istniejących funkcji Lambda do szybkiego uruchamiania z Lambda.
Na następnym ekranie możesz skonfigurować dowolne wyzwalacze, których chcesz użyć, aby „wyłączyć” tę funkcję Lambda. Możesz wybierać między brakiem wyzwalaczy (poprzez ręczną konfigurację później, w zależności od zadania), API Gateway (do tworzenia bezserwerowego klienta REST), Alexa Skills lub mnóstwem innych, aby uruchomić utworzoną funkcję.
Zakończ konfigurację na następnym ekranie, ustawiając nazwę , opis , wybierając środowisko wykonawcze , wybierając opcję edycji funkcji wbudowanej, przesyłając plik .zip lub przesyłając plik z Amazon S3, wybierając rolę (przydatne w przypadku uprawnień opartych na uprawnieniach interakcja między usługami AWS), ustaw pamięć i limity oraz przygotuj aplikację do użytku na żywo.
Na koniec przejrzysz swoją funkcję i ją utworzysz. Ponieważ Lambda korzysta z modelu Pay-Per-Use, żadne ładowarki nie są ponoszone, dopóki nie zaczniesz korzystać z nowo utworzonej funkcji.
Java AWS-Lambda S3 wyzwolona
Funkcję AWS-Lambda można dołączyć do określonego zdarzenia segmentu. Za każdym razem, gdy plik / folder jest tworzony lub usuwany, zdarzenie może spowodować uruchomienie funkcji lambda.
Prosta funkcja Lambda do drukowania nazwy przesłanego pliku
Jest to jednoklasowy projekt lambda, który drukuje nazwę przesłanego pliku. W przypadku maven musimy dodać te zależności:
<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>
Przejdźmy teraz do naszej klasy 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;
}
}
Następnym krokiem jest zbudowanie projektu przy użyciu mvn.
Po zbudowaniu projektu musimy go wgrać do AWS-Lambda. Przejdź do Lambda, wybierz „utwórz funkcję lambda”. Pomiń część, w której wybierasz plan, ponieważ zwykle nie ma Java.
Pomiń także „Konfiguruj wyzwalacze”, ponieważ skonfigurujemy go z innej lokalizacji. Na następnej stronie wprowadź nazwę pierwszej funkcji lambda, a następnie krótki opis i wybierz Java jako środowisko wykonawcze.
W polu „Typ wpisu kodu” wybierz „Prześlij z pliku .ZIP”, a następnie wybierz plik .zip w następnej lokalizacji, aby go przesłać.
Trudną częścią tej strony jest pole modułu obsługi. W polu procedury obsługi należy określić lokalizację klasy, która implementuje obiekt RequestHandler. Ta klasa jest punktem wejścia dla lambda i twoja funkcja Lambda nie będzie działać, jeśli nie zostanie poprawnie określona. Dla naszej obsługi spraw jest „com.HelloWorld”
Dołączanie wyzwalacza S3 do Lambda:
Tutaj dołączymy wyzwalacz do wysyłania pliku S3
- Przejdź do S3, wybierz wiadro, a następnie „Właściwości”.
- W sekcji „Właściwości” przejdź do „Zdarzenia”.
- Dodaj szczegóły wydarzenia. W polu „Zdarzenia” wybierz sposób, w jaki chcesz uruchomić Lambdę. Wybieramy „ObjectCreated (All)”. Pamiętaj, że funkcja lambda i segment muszą znajdować się w tym samym regionie Amazon
- W polu „Wysyła do” sprawdź funkcję lambda i wybierz z listy swoją funkcję lambda.
Monitorowanie mocy lambda
Teraz prześlemy plik do wiadra z wyzwalaczem lambda. Aby wyświetlić dane wyjściowe i dzienniki lambda, przejdź do „CloudWatch”, następnie wybierz „Dzienniki”, a następnie wybierz funkcję Lambda. Możesz zobaczyć wiele wpisów w „Strumieniach dziennika”, wybierz najnowszy i otwórz go. Powinieneś zobaczyć tam wynik wykonania lambda.