Zanim zaczniemy działać AWS Lambda, zrozummy:
Co to jest Serverless?
Bezserwerowe to termin, który ogólnie odnosi się do aplikacji bezserwerowych. Aplikacje bezserwerowe to takie, które nie wymagają obsługi serwera i nie wymagają zarządzania serwerami.
Co to jest AWS Lambda?
AWS Lambda to sterowana zdarzeniami, bezserwerowa platforma obliczeniowa dostarczana przez Amazon jako część Amazon Web Services. Dlatego nie musisz się martwić, które zasoby AWS uruchomić, ani jak będziesz nimi zarządzać. Zamiast tego musisz umieścić kod na Lambdzie i działa.
W AWS Lambda kod jest wykonywany na podstawie reakcji na zdarzenia w usługach AWS, takie jak dodawanie / usuwanie plików w wiadrze S3, żądanie HTTP z bramy Amazon API itp. Jednak Amazon Lambda może być używany tylko do wykonywania zadań w tle.
Funkcja AWS Lambda pomaga skupić się na podstawowym produkcie i logice biznesowej zamiast na zarządzaniu kontrolą dostępu do systemu operacyjnego (OS), poprawkami systemu operacyjnego, odpowiednim dopasowaniem, zaopatrzeniem, skalowaniem itp.
W tym samouczku AWS Lambda dla początkujących dowiesz się:
- Jak działa AWS Lambda?
- Zdarzenia wyzwalające AWS Lambda
- AWS Lambda Concepts
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastic Beanstalk
- Użyj przypadków AWS Lambda
- Najlepsze praktyki funkcji Lambda
- Kiedy nie używać AWS Lambda
- Zalety korzystania z AWS Lambda
- Ograniczenia AWS Lambda
Jak działa AWS Lambda?
Poniższy przykład AWS Lambda ze schematem blokowym wyjaśnia działanie AWS Lambda w kilku prostych krokach:
Krok 1: Najpierw prześlij swój kod AWS Lambda w dowolnym języku obsługiwanym przez AWS Lambda. Java, Python, Go i C # to niektóre z języków obsługiwanych przez funkcję AWS Lambda.
Krok 2: Oto niektóre usługi AWS, które umożliwiają wyzwalanie AWS Lambda.
Krok 3: AWS Lambda pomaga przesłać kod i szczegóły zdarzenia, na którym ma zostać wywołany.
Krok 4: Wykonuje kod AWS Lambda, gdy jest uruchamiany przez usługi AWS:
Krok 5: AWS pobiera opłaty tylko wtedy, gdy wykonywany jest kod lambda AWS, a nie inaczej.
Będzie to miało miejsce w następujących scenariuszach:
- Prześlij pliki w zasobniku S3
- Kiedy HTTP get / post URL punktu końcowego zostanie trafiony
- Do dodawania / modyfikowania i usuwania tabel Dynamo DB
- W procesie zbierania strumieni danych
- Aktywne powiadomienie
- Hosting strony internetowej
- Wysyłanie wiadomości e-mail
Uwaga: pamiętaj, że będziesz pobierać opłaty za usługi AWS tylko wtedy, gdy wykonywany jest kod AWS Lambda, w przeciwnym razie nie musisz nic płacić.
Zdarzenia wyzwalające AWS Lambda
Oto zdarzenia, które zostaną wywołane, gdy użyjesz AWS Lambda.
- Wstawianie, aktualizowanie i usuwanie danych tabeli Dynamo DB
- Włączanie powiadomień push do portali społecznościowych
- Aby wyszukać historię dzienników w CloudTrail
- Wejście do obiektu S3
- DynamoDB może wyzwalać AWS Lambda za każdym razem, gdy w tabeli zostaną dodane, zmodyfikowane i usunięte dane.
- Pomaga zaplanować wydarzenie w celu wykonania zadania w regularnych odstępach czasu.
- Modyfikacje obiektów w łyżkach S3
- Powiadomienia wysłane z Amazon SNS.
- AWS Lambda może służyć do przetwarzania dzienników CloudTrail
- API Gateway umożliwia wyzwalanie AWS Lambda na metodach GET / POST.
AWS Lambda Concepts
Funkcjonować:
Funkcja to program lub skrypt działający w AWS Lambda. Lambda przekazuje zdarzenia wywołania do Twojej funkcji, która przetwarza zdarzenie i zwraca jego odpowiedź.
Czas działania:
Środowisko wykonawcze umożliwia funkcje w różnych językach, które działają w tym samym podstawowym środowisku wykonawczym. Pomaga to skonfigurować funkcję w czasie wykonywania. Pasuje również do wybranego języka programowania.
Źródło wydarzenia:
Źródłem zdarzenia jest usługa AWS, taka jak Amazon SNS, lub usługa niestandardowa. Ta funkcja wyzwalaczy pomaga w wykonywaniu jej logiki.
Warstwy Lambda:
Warstwy lambda są ważnym mechanizmem dystrybucji bibliotek, niestandardowych środowisk wykonawczych i innych ważnych zależności funkcji. Ten komponent AWS pomaga również w zarządzaniu kodem funkcji programistycznych niezależnie od niezmiennego kodu i zasobów, z których korzysta.
Strumienie dziennika:
Strumień dziennika umożliwia dodawanie adnotacji do kodu funkcji za pomocą niestandardowych instrukcji rejestrowania, co pomaga analizować przepływ wykonywania i wydajność funkcji AWS Lambda.
Jak korzystać z AWS Lambda
Teraz nauczymy się, jak korzystać z AWS Lambda na przykładzie AWS Lambda:
Krok 1 ) Wejdź na https://aws.amazon.com/lambda/ i zacznij
Krok 2 ) Utwórz konto lub zaloguj się na swoje istniejące konto
Krok 3 ) Na następnej stronie Lambda,
- Edytuj kod
- Kliknij Uruchom
Krok 4 ) Zobaczysz dane wyjściowe
AWS Lambda VS AWS EC2
Oto kilka głównych różnic między AWS Lambda i EC2.
Parametry | AWS Lambda | AWS EC2 |
Definicja | AWS Lambda to platforma jako usługa (PaaS). Pomaga w uruchamianiu i wykonywaniu kodu zaplecza. | AWS EC2 to infrastruktura jako usługa (laaS). Zapewnia zwirtualizowane zasoby obliczeniowe. |
Elastyczność | Nie oferuje żadnej elastyczności logowania się w celu obliczania wystąpień. Umożliwia wybranie niestandardowego systemu operacyjnego lub środowiska wykonawczego języka. | Oferuje elastyczność wyboru różnych instancji, niestandardowych systemów operacyjnych, poprawek zabezpieczeń, sieci itp. |
Proces instalacji | Musisz wybrać środowisko, w którym chcesz uruchomić kod i wypchnąć go do AWS Lambda. | Po raz pierwszy w EC2 musisz wybrać system operacyjny i zainstalować całe wymagane oprogramowanie, a następnie przesłać kod do EC2. |
Ograniczenia środowiskowe | Jest ograniczona do kilku języków. | Brak ograniczeń środowiskowych. |
AWS Lambda VS AWS Elastic Beanstalk
Oto kilka głównych różnic między AWS Lambda i Elastic Beanstalk.
Parametry | AWS Elastic Beanstalk | AWS Lambda |
Główne zadanie | Wdrażaj i zarządzaj aplikacjami w AWS Cloud bez martwienia się o infrastrukturę, na której działają te aplikacje. | AWS Lambda służy do uruchamiania i wykonywania kodu zaplecza. Nie możesz go użyć do wdrożenia aplikacji. |
Dobór zasobów AWS | Daje Ci swobodę wyboru zasobów AWS; Na przykład możesz wybrać instancję EC2, która jest optymalna dla Twojej aplikacji. | Nie możesz wybrać zasobów AWS, takich jak typ instancji EC2, Lambda oferuje zasoby w oparciu o obciążenie. |
Rodzaj systemu | Jest to system stanowy. | Jest to system bezpaństwowy. |
Użyj przypadków AWS Lambda
AWS Lambda używany do szerokiego zakresu zastosowań, takich jak:
- Pomaga w procesie ETL
- Umożliwia przetwarzanie plików w czasie rzeczywistym i przetwarzanie strumieniowe w czasie rzeczywistym
- Służy do tworzenia aplikacji internetowych
- Używaj w produktach Amazon, takich jak Alexa Chatbots i Amazon Echo / Alexa
- Przetwarzanie danych (analiza strumieniowa w czasie rzeczywistym)
- Automatyczne kopie zapasowe codziennych zadań
- Skalowalne zaplecze (aplikacje mobilne, urządzenia loT)
- Pomaga w wykonywaniu logiki wewnętrznej bazy danych po stronie serwera
- Umożliwia filtrowanie i przekształcanie danych
Najlepsze praktyki funkcji Lambda
Oto kilka najlepszych praktyk związanych z funkcjami AWS Lambda:
- Użyj odpowiedniego „limitu czasu”.
- Skorzystaj z funkcji lokalnej pamięci masowej o rozmiarze 500 MB w folderze / temp
- Minimalizacja użycia kodu startowego, który nie jest bezpośrednio związany z przetwarzaniem bieżącego zdarzenia.
- Powinieneś używać wbudowanego monitorowania CloudWatch swoich funkcji Lambda, aby wyświetlać i optymalizować opóźnienia żądań.
Kiedy nie używać AWS Lambda
Oto sytuacja, w której Lambda z pewnością nie jest rozwiązaniem idealnym:
- Nie należy używać pakietów oprogramowania AWS Lambda ani aplikacji, które polegają na wywoływaniu podstawowych RPC systemu Windows
- Jeśli jest używany do niestandardowych aplikacji z umowami licencyjnymi, takimi jak przetwarzanie dokumentów MS-Office, bazy danych Oracle itp.
- AWS Lambda nie powinno być używane do niestandardowych procesów sprzętowych, takich jak akceleracja GPU, koligacja sprzętowa.
Zalety korzystania z AWS Lambda
Oto zalety / zalety korzystania z AWS lambda:
- AWS Lambda to bardzo elastyczne narzędzie w użyciu
- Pomaga w przyznawaniu dostępu do zasobów, w tym VPC
- Twórz bezpośrednio za pomocą edytora WYSIWYG w konsoli.
- Możesz go używać jako wtyczki do Eclipse i Visual Studio.
- Ponieważ jest to architektura bezserwerowa, nie musisz martwić się o zarządzanie serwerami ani ich udostępnianie.
- Nie musisz konfigurować żadnej maszyny wirtualnej.
- Pomaga programistom w uruchamianiu i wykonywaniu odpowiedzi kodu na zdarzenia bez budowania infrastruktury.
- Wystarczy, że zajmie Ci to czas obliczeniowy, tylko wtedy, gdy Twój kod jest uruchomiony.
- Możesz monitorować wydajność swojego kodu w czasie rzeczywistym za pomocą CloudWatch.
- Umożliwia uruchamianie kodu bez udostępniania lub zarządzanie jakimkolwiek innym serwerem
- Pomaga wykonać kod tylko wtedy, gdy jest potrzebny
- Możesz go skalować automatycznie, aby obsługiwać kilka żądań dziennie, a nawet obsługiwać ponad tysiące żądań na sekundę.
- AWS Lambda można skonfigurować za pomocą zewnętrznych liczników czasu do wykonywania zaplanowanych zadań.
- Funkcja Lambda w AWS powinna być skonfigurowana z zewnętrznymi zdarzeniami i timerami; może być używany do planowania.
- Funkcje lambda są bezstanowe, dzięki czemu można je szybko skalować.
- AWS Lambda jest szybka, więc wykona Twój kod w ciągu milisekund.
Ograniczenia AWS Lambda
Oto wady / wady korzystania z AWS Lambda:
- Narzędzie AWS Lambda nie nadaje się do małych projektów.
- AWS Lambda całkowicie opiera się na AWS w zakresie infrastruktury, więc nie możesz zainstalować żadnego dodatkowego oprogramowania, jeśli wymaga tego Twój kod.
- Jednoczesne wykonywanie jest ograniczone do 100
- AWS Lambda całkowicie zależało od AWS w zakresie infrastruktury; nie możesz zainstalować żadnego dodatkowego oprogramowania, jeśli wymaga tego Twój kod.
- Jego wielkość pamięci może wynosić od 128 do 1536 MB.
- Żądanie zdarzenia nie powinno przekraczać 128 KB.
- Funkcje Lambda pomagają w zapisywaniu ich logów tylko w CloudWatch. To jedyne narzędzie, które umożliwia monitorowanie funkcji lub rozwiązywanie problemów.
- Limit czasu wykonania kodu wynosi zaledwie 5 minut.
Podsumowanie
- Bezserwerowe to termin, który ogólnie odnosi się do aplikacji bezserwerowych.
- AWS Lambda jest jedną z takich bezserwerowych usług obliczeniowych. Dlatego nie musisz się martwić, które zasoby AWS uruchomić, ani jak będą nimi zarządzać.
- Funkcja to program lub skrypt, który działa w AWS serverless Lambda.
- Środowisko wykonawcze umożliwia funkcje w różnych językach, które działają w tym samym podstawowym środowisku wykonawczym.
- Źródłem zdarzenia jest usługa AWS, taka jak Amazon SNS, lub usługa niestandardowa.
- Warstwy lambda są ważnym mechanizmem dystrybucji bibliotek, niestandardowych środowisk wykonawczych i innych ważnych zależności funkcji.
- Strumień dziennika umożliwia dodawanie adnotacji do kodu funkcji za pomocą niestandardowych instrukcji rejestrowania, co pomaga analizować przepływ wykonywania i wydajność funkcji Lambda.
- AWS Lambda to platforma jako usługa (PaaS). Pomaga w uruchamianiu i wykonywaniu kodu zaplecza.
- AWS EC2 to infrastruktura jako usługa (laaS). Zapewnia zwirtualizowane zasoby obliczeniowe.
- Wdrażaj i zarządzaj aplikacjami w AWS Cloud bez martwienia się o infrastrukturę, na której działają te aplikacje.
- AWS Lambda służy do uruchamiania i wykonywania kodu zaplecza. Nie możesz go użyć do wdrożenia aplikacji.
- AWS Lambda pomaga w procesie ETL.
- Najlepszą praktyką funkcji Lambda w AWS jest użycie odpowiedniego „limitu czasu”.
- Nie należy używać pakietów oprogramowania AWS Lambda ani aplikacji, które polegają na wywoływaniu podstawowych RPC systemu Windows
- AWS Lambda to bardzo elastyczne narzędzie.
- Narzędzie AWS Lambda nie nadaje się do małych projektów.
- Typowym zdarzeniem, które zostanie wywołane podczas korzystania z AWS Lambda, jest wstawianie, aktualizowanie i usuwanie danych tabeli Dynamo DB.