aws-lambdaRozpoczęcie pracy z aws-lambda


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

  1. Zaloguj się do konsoli AWS i kliknij Lambda w zakładce Usługi .

  2. W obszarze Funkcje możesz utworzyć funkcję Lambda za pomocą przycisku o tej samej nazwie. wprowadź opis zdjęcia tutaj

  3. 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. wprowadź opis zdjęcia tutaj

  4. 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ę. wprowadź opis zdjęcia tutaj

  5. 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. wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

  6. 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. wprowadź opis zdjęcia tutaj

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.