AWS Lambda - przegląd
AWS Lambdato usługa polegająca na wykonywaniu obliczeń bezserwerowych, co oznacza przetwarzanie bez serwera. Kod jest wykonywany w oparciu o reakcję na zdarzenia w usługach AWS, takie jak dodawanie / usuwanie plików w wiadrze S3, aktualizacja tabel Amazon dynamo dB, żądanie HTTP z bramy Amazon API itp.
Do pracy AWS Lambda, musimy tylko wypchnąć kod w usłudze AWS Lambda. Wszystkie inne zadania i zasoby, takie jak infrastruktura, system operacyjny, utrzymanie serwera, monitorowanie kodu, logi i bezpieczeństwo, są obsługiwane przez AWS.
AWS Lambdaobsługuje języki takie jak Java, NodeJS, Python, C # i Go. Pamiętaj, że AWS Lambda będzie działać tylko z usługami AWS.
Co to jest AWS Lambda?
Definicja AWS Lambda podana w oficjalnej dokumentacji jest następująca -
AWS Lambda to usługa obliczeniowa, która umożliwia uruchamianie kodu bez udostępniania lub zarządzania serwerami. AWS Lambda wykonuje Twój kod tylko wtedy, gdy jest to potrzebne i automatycznie skaluje, od kilku żądań dziennie do tysięcy na sekundę. Płacisz tylko za zużyty czas obliczeniowy - nie ma żadnych opłat, gdy kod nie jest uruchomiony.
Jak działa AWS Lambda?
Schemat blokowy, który wyjaśnia działanie AWS Lambda w pięciu łatwych krokach, pokazano poniżej -
Step 1 − Prześlij kod lambda AWS w dowolnym z języków obsługiwanych przez AWS lambda, czyli NodeJS, Java, Python, C # i Go.
Step 2 − To kilka usług AWS, na których można wyzwolić lambdę AWS.
Step 3 −AWS Lambda, która zawiera kod do przesłania i szczegóły zdarzenia, na którym wystąpił wyzwalacz. Na przykład zdarzenie z Amazon S3, Amazon API Gateway, Dynamo dB, Amazon SNS, Amazon Kinesis, CloudFront, Amazon SES, CloudTrail, aplikacja mobilna itp.
Step 4 − Wykonuje kod AWS Lambda tylko wtedy, gdy jest uruchamiany przez usługi AWS w scenariuszach takich jak -
- Użytkownik przesyła pliki w zasobniku S3
- http get / post URL punktu końcowego został trafiony
- dane są dodawane / aktualizowane / usuwane w tablicach dynamo dB
- aktywne powiadomienie
- zbieranie strumieni danych
- hosting witryn internetowych
- wysyłanie e-maili
- aplikacja mobilna itp.
Step 5 − Pamiętaj, że AWS pobiera opłaty tylko wtedy, gdy wykonywany jest kod lambda AWS, a nie inaczej.
Zalety korzystania z AWS Lambda
AWS Lambda oferuje wiele korzyści podczas pracy nad nią. Ta sekcja omawia je szczegółowo -
Łatwość pracy z kodem
AWS Lambda zapewnia infrastrukturę do przesłania kodu. Dba o utrzymanie kodu i uruchamia go, gdy zajdzie wymagane zdarzenie. Pozwala wybrać pamięć i limit czasu wymagany dla kodu.
AWS Lambda może również wykonywać równoległe żądania zgodnie z wyzwalaczami zdarzeń.
Udostępnianie dziennika
AWS Lambda podaje szczegółowe informacje o tym, ile razy kod został wykonany, ile czasu zajęło wykonanie, zajętej pamięci itp. AWS CloudWatch zbiera wszystkie dzienniki, co pomaga w zrozumieniu przebiegu wykonywania i debugowaniu kodu.
Rozliczenia na podstawie użycia
Fakturowanie za AWS Lambda odbywa się na podstawie wykorzystania pamięci, wysłanego żądania i wykonania, które jest rozliczane w odstępach co najmniej 100 ms. Tak więc w przypadku wykonania 500 ms fakturowanie będzie dokonywane co 100 ms. Jeśli określisz, że kod lambda AWS ma być wykonany w 500 ms, a czas potrzebny na wykonanie to zaledwie 200 ms, AWS obciąży Cię tylko za ten czas, czyli 200 ms wykonania zamiast 500 ms. AWS zawsze pobiera opłaty za wykorzystany czas wykonania. Nie musisz płacić, jeśli funkcja nie jest wykonywana.
Obsługa wielu języków
AWS Lambda obsługuje popularne języki, takie jak Node. js, Python, Java, C # i Go. Są to powszechnie używane języki i każdy programista z łatwością napisze kod dla AWS Lambda.
Łatwość tworzenia i wdrażania kodu
Lambda ma wiele opcji tworzenia i wdrażania kodu. Do pisania kodu można użyć edytora online AWS, środowiska Visual Studio IDE lub Eclipse IDE. Obsługuje również framework bezserwerowy, który ułatwia pisanie i wdrażanie kodu AWS Lambda. Oprócz konsoli AWS mamy AWS-cli do tworzenia i wdrażania kodu.
Inne funkcje
Możesz używać AWS Lambda za darmo, uzyskując login do darmowego poziomu AWS. Zapewnia bezpłatną usługę przez 1 rok. Spójrz na bezpłatne usługi oferowane przez darmowy poziom AWS.
Wady korzystania z AWS Lambda
Pomimo wielu zalet AWS Lambda posiada następujące wady -
Nie nadaje się do małych projektów.
Musisz dokładnie przeanalizować swój kod i zdecydować o pamięci i limicie czasu. W przypadku, gdy twoja funkcja potrzebuje więcej czasu niż to, co zostało przydzielone, zostanie zakończona zgodnie z podanym w niej limitem czasu, a kod nie zostanie w pełni wykonany.
Ponieważ AWS Lambda opiera się całkowicie na AWS w zakresie infrastruktury, nie możesz zainstalować żadnego dodatkowego oprogramowania, jeśli wymaga tego Twój kod.
Zdarzenia wyzwalające AWS Lambda
Zdarzenia, które mogą wyzwolić AWS Lambda, są następujące -
- Wejście do obiektu S3
- Wstawianie, aktualizowanie i usuwanie danych w tabeli Dynamo DB
- Powiadomienia push z SNS
- GET / POST wywołania API Gateway
- Modyfikacja nagłówków w przeglądarce lub żądaniu / odpowiedzi pochodzenia w CloudFront
- Wpisy dziennika w strumieniu danych AWS Kinesis
- Loguj historię w CloudTrail
Użyj przypadków AWS Lambda
AWS Lambda to usługa obliczeniowa używana głównie do uruchamiania procesów w tle. Może się wyzwalać, gdy jest używany z innymi usługami AWS. Lista usług AWS, w których możemy skorzystać z AWS Lambda znajduje się poniżej -
Obiekt S3 i AWS Lambda
Amazon S3 przekazuje szczegóły zdarzenia do AWS Lambda, gdy w S3 jest przesyłany plik. Szczegóły dotyczące załadowania lub usunięcia pliku lub przeniesienia pliku są przekazywane do AWS Lambda. Kod w AWS Lambda może wykonać niezbędny krok po otrzymaniu szczegółów zdarzenia. Na przykład tworzenie miniatury obrazu wstawionego do S3.
DynamoDB i AWS Lambda
DynamoDB może wyzwolić AWS Lambda, gdy w tabeli zostaną dodane, zaktualizowane i usunięte dane. Zdarzenie AWS Lambda zawiera wszystkie szczegóły tabeli AWS DynamoDB dotyczące wstawiania / aktualizowania lub usuwania.
API Gateway i AWS Lambda
API Gateway może wyzwalać AWS Lambda na metodach GET / POST. Możemy stworzyć formularz i udostępnić szczegóły punktowi końcowemu API Gateway i wykorzystać go z AWS Lambda do dalszego przetwarzania, na przykład, dokonując wpisu danych w tabeli DynamoDB.
SNS i AWS Lambda
SNS służy do powiadamiania push, wysyłania SMS-ów itp. Możemy wyzwalać lambdę AWS, gdy w SNS ma miejsce jakiekolwiek powiadomienie push. Możemy również wysłać SMS na numer telefonu z AWS Lambda, gdy otrzyma wyzwalacz.
Zaplanowane wydarzenia i AWS Lambda
Zaplanowane zdarzenia mogą być używane do zadań cron. Może spowodować, że AWS Lambda będzie wykonywać zadanie w regularnych odstępach czasu.
CloudTrail i AWS Lambda
CloudTrail może być pomocny w monitorowaniu logów na koncie. Możemy użyć AWS Lambda do dalszego przetwarzania dzienników CloudTrail.
Kinesis i AWS Lambda
Kinesis służy do przechwytywania / przechowywania danych śledzenia w czasie rzeczywistym pochodzących z kliknięć w witrynie, dzienników, kanałów mediów społecznościowych i wyzwalacza dla AWS Lambda może wykonać dodatkowe przetwarzanie w tych dziennikach.
CloudFront i Lambda @ Edge
CloudFront to sieć dostarczania treści, w której możesz hostować swoją witrynę internetową, a Lambda @ Edge może być używany do przetwarzania nagłówków pochodzących z żądania przeglądarki, żądania pochodzenia, odpowiedzi pochodzenia i odpowiedzi przeglądarki. Modyfikacja nagłówków obejmuje takie zadania, jak modyfikowanie danych cookie, przepisywanie adresu URL, używane do testowania AB w celu zmiany odpowiedzi wysyłanej do użytkownika, dodawanie dodatkowych informacji o nagłówkach ze względów bezpieczeństwa itp.