Co to jest Lambda AWS? Funkcja Lambda z przykładami
Przed funkcją AWS Lambda zrozummy:
Co to jest Serverless?
Bezserwerowy to termin, który ogólnie odnosi się do aplikacji bezserwerowych. Aplikacje bezserwerowe to takie, które nie wymagają udostępniania serwera i nie wymagają zarządzania serwerami.
Co to jest Lambda AWS?
AWS Lambda to sterowana zdarzeniami, bezserwerowa platforma obliczeniowa dostarczana przez Amazon jako część Amazon Usługi internetowe. Dlatego nie musisz się martwić, które zasoby AWS uruchomić ani jak nimi zarządzać. Zamiast tego musisz umieścić kod na Lambdzie i działa.
W AWS Lambda kod jest wykonywany na podstawie odpowiedzi na zdarzenia w usługach AWS, takie jak dodanie/usunięcie plików w zasobniku S3, żądanie HTTP z Amazon Brama API itp. Jednak Amazon Lambda może być używana tylko do wykonywania zadań w tle.
Funkcja AWS Lambda pozwala Ci skupić się na podstawowym produkcie i logice biznesowej zamiast zarządzać kontrolą dostępu do systemu operacyjnego (OS), poprawkami systemu operacyjnego, dostosowywaniem rozmiaru, provisionowaniem, skalowaniem itp.
Jak działa AWS Lambda?
Poniższy przykład AWS Lambda z diagramem 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 tylko niektóre z języków obsługiwanych przez funkcję AWS Lambda.
Krok 2: Oto niektóre usługi AWS, które umożliwiają uruchomienie AWS Lambda.
Krok 3: AWS Lambda pomaga przesłać kod i szczegóły zdarzenia, po którym ma zostać uruchomiony.
Krok 4: Wykonuje kod Lambda AWS po uruchomieniu przez usługi AWS:
Krok 5: AWS pobiera opłaty tylko wtedy, gdy wykonywany jest kod AWS Lambda. Poza tym nie pobiera opłat.
Będzie to miało miejsce w następujących scenariuszach:
- Prześlij pliki do zasobnika S3
- Po trafieniu adresu URL punktu końcowego pobierania/wysyłania protokołu HTTP
- Do dodawania/modyfikowania i usuwania tabel Dynamo DB
- W procesie gromadzenia strumieni danych
- Aktywne powiadomienie
- Hosting strony internetowej
- Wysyłanie e-maili
Uwaga: Pamiętaj, że za usługi AWS będziesz pobierać opłaty tylko wtedy, gdy zostanie wykonany kod AWS Lambda, w przeciwnym razie nie musisz nic płacić.
Zdarzenia wyzwalające AWS Lambda
Tutaj znajdują się zdarzenia, które zostaną wywołane podczas korzystania z AWS Lambda.
- Wstawianie, aktualizowanie i usuwanie danych tabeli Dynamo DB
- Aby uwzględnić powiadomienia push w SNS
- Aby wyszukać historię logów w CloudTrail
- Wejście do obiektu S3
- DynamoDB może uruchomić AWS Lambda za każdym razem, gdy w tabeli zostaną dodane, zmodyfikowane i usunięte dane.
- Pomaga zaplanować wydarzenie, aby wykonać zadanie o regularnej porze.
- Modyfikacje obiektów w segmentach S3
- Powiadomienia wysyłane z Amazon SNS.
- AWS Lambda może służyć do przetwarzania dzienników CloudTrail
- API Gateway umożliwia wyzwalanie AWS Lambda przy użyciu metod GET/POST.
AWS Lambda Concepts
Funkcja:
Funkcja to program lub skrypt uruchamiany w AWS Lambda. Lambda przekazuje zdarzenia wywołania do Twojej funkcji, która przetwarza zdarzenie i zwraca odpowiedź.
Czas działania:
Runtime umożliwia korzystanie z funkcji 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ęzyk programowania.
Źródło zdarzenia:
Źródłem zdarzenia jest usługa AWS, taka jak Amazon SNS lub usługa niestandardowa. Ta funkcja wyzwalacza pomaga w wykonaniu jej logiki.
Warstwy Lambdy:
Warstwy Lambda są ważnym mechanizmem dystrybucji bibliotek, niestandardowych środowisk wykonawczych i innych ważnych zależności funkcji. Ten komponent AWS pomaga także zarządzać kodem funkcji programistycznych oddzielnie od niezmiennego kodu i zasobów, z których korzysta.
Strumienie dziennika:
Strumień dziennika umożliwia opisywanie 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ę korzystać z AWS Lambda na przykładzie AWS Lambda:
Krok 1) Krok 1) Otwórz adres URL AWS Lambda
Iść do https://aws.amazon.com/lambda/ i Rozpocznij
Krok 2) Utwórz konto
Następnie utwórz konto lub zaloguj się na istniejące konto
Krok 3) Edytuj kod i kliknij Uruchom,
Na następnej stronie Lambda
- Edytuj kod
- Kliknij Uruchom
Krok 4) Sprawdź wyjście
Zobaczysz dane wyjściowe
AWS Lambda kontra AWS EC2
Oto kilka głównych różnic między AWS Lambda i EC2.
parametry | AWS Lambda | AWSEC2 |
---|---|---|
Definicja | AWS Lambda to platforma jako usługa (PaaS). Pomaga w uruchomieniu i wykonaniu kodu zaplecza. | AWS EC2 to infrastruktura jako usługa (laaS). Zapewnia zwirtualizowane zasoby obliczeniowe. |
Elastyczność | Nie oferuje żadnej elastyczności logowania się do instancji obliczeniowych. Pozwala wybrać niestandardowy system operacyjny lub środowisko wykonawcze języka. | Oferuje elastyczność wyboru różnorodnych instancji, niestandardowych systemów operacyjnych, poprawek zabezpieczeń, sieci itp. |
Proces instalacji | Musisz wybrać środowisko, w którym chcesz uruchomić kod i wcisnąć kod do AWS Lambda. | Po raz pierwszy w EC2 musisz wybrać system operacyjny i zainstalować całe wymagane oprogramowanie, a następnie wcisnąć swój kod w EC2. |
Ograniczenia środowiskowe | Jest ograniczony do kilku języków. | Brak ograniczeń środowiskowych. |
AWS Lambda VS AWS Elastyczna łodyga fasoli
Oto kilka głównych różnic między AWS Lambda i Elastic Beanstalk.
parametry | Elastyczna łodyga fasoli AWS | AWS Lambda |
---|---|---|
Główne zadanie | Wdrażaj aplikacje i zarządzaj nimi w chmurze AWS, nie martwiąc się o infrastrukturę, na której działają te aplikacje. | AWS Lambda służy do uruchamiania i wykonywania kodu zaplecza. Nie można go użyć do wdrożenia aplikacji. |
Wybór zasobów AWS | Daje Ci swobodę wyboru zasobów AWS; Na przykład możesz wybrać instancję EC2, która jest optymalna w zależności od aplikacji. | Nie możesz wybrać zasobów AWS, takich jak typ instancji EC2, Lambda oferuje zasoby w oparciu o obciążenie pracą. |
Typ systemu | Jest to system stanowy. | Jest to system bezpaństwowy. |
Przypadki użycia AWS Lambda
AWS Lambda wykorzystywana w szerokim zakresie zastosowań, takich jak:
- Pomaga w procesie ETL
- Umożliwia przetwarzanie plików w czasie rzeczywistym i przetwarzanie strumieni w czasie rzeczywistym
- Służy do tworzenia aplikacji internetowych
- Użyj w Amazon produkty takie jak Alexa Chatbots i Amazon Echo/Alexa
- Przetwarzanie danych (analiza strumieniowania w czasie rzeczywistym)
- Automatyczne kopie zapasowe codziennych zadań
- Skalowalne backendy (aplikacje mobilne, urządzenia loT)
- Pomaga w wykonywaniu logiki zaplecza po stronie serwera
- Umożliwia filtrowanie i przekształcanie danych
Najlepsze praktyki funkcji Lambda
Oto kilka najlepszych praktyk AWS Funkcje lambdy:
- Użyj odpowiedniego „limitu czasu”.
- Wykorzystaj funkcje pamięci lokalnej o rozmiarze 500 MB w folderze /temp
- Minimalizacja użycia kodu startowego niezwiązanego bezpośrednio z obsługą bieżącego zdarzenia.
- Powinieneś używać wbudowanego monitorowania funkcji Lambda w CloudWatch, aby przeglądać i optymalizować opóźnienia żądań.
Kiedy nie używać AWS Lambda
Oto sytuacje, w których Lambda z pewnością nie jest idealnym rozwiązaniem:
- Niewłaściwe jest używanie pakietów oprogramowania lub aplikacji AWS Lambda, które opierają się na wywołaniach bazowych Windows PPWU
- Jeśli jest używany do niestandardowych aplikacji objętych umowami licencyjnymi, takich jak przetwarzanie dokumentów MS-Office, Oracle bazy danych itp.
- AWS Lambda nie powinna być używana do niestandardowych procesów sprzętowych, takich jak przyspieszanie GPU czy powinowactwo sprzętowe.
Zalety korzystania z AWS Lambda
Oto zalety/korzyści korzystania z lambdy AWS:
- AWS Lambda jest narzędziem bardzo elastycznym w użyciu
- Pomaga w przyznawaniu dostępu do zasobów, w tym VPC
- Autor bezpośrednio z WYSIWRedaktor YG 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 niczego konfigurować Maszyna wirtualna.
- Pomaga programistom uruchamiać i wykonywać odpowiedź kodu na zdarzenia bez budowania jakiejkolwiek infrastruktury.
- Musisz to zrobić tylko na czas obliczeń, tylko wtedy, gdy kod jest uruchomiony.
- Możesz monitorować wydajność swojego kodu w czasie rzeczywistym za pomocą CloudWatch.
- Umożliwia uruchomienie kodu bez udostępniania lub zarządzanie dowolnym innym serwerem
- Pomaga wykonać kod tylko wtedy, gdy jest to potrzebne
- Możesz skalować go automatycznie, aby obsłużyć 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 w celu wykonywania zaplanowanych zadań.
- Funkcja Lambda w AWS powinna być skonfigurowana ze zdarzeniami zewnętrznymi i timerami, a więc; można go używać 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 infrastrukturze AWS, 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ła od AWS w zakresie infrastruktury; nie możesz zainstalować żadnego dodatkowego oprogramowania, jeśli wymaga tego Twój kod.
- Pojemność pamięci może wahać się od 128 do 1536 MB.
- Żądanie zdarzenia nie powinno przekraczać 128 KB.
- Funkcje Lambda pomagają zapisywać swoje logi tylko w CloudWatch. Jest to jedyne narzędzie, które pozwala monitorować lub rozwiązywać problemy z funkcjami.
- Limit czasu wykonania kodu wynosi zaledwie 5 minut.
Podsumowanie
- Bezserwerowy to termin, który ogólnie odnosi się do aplikacji bezserwerowych.
- AWS Lambda to jedna 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 działający w bezserwerowej Lambdzie AWS.
- Runtime umożliwia korzystanie z funkcji 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 opisywanie kodu funkcji niestandardowymi instrukcjami rejestrowania, co pomaga analizować przepływ wykonywania i wydajność funkcji Lambda.
- AWS Lambda to platforma jako usługa (PaaS). Pomaga w uruchomieniu i wykonaniu kodu zaplecza.
- AWS EC2 to infrastruktura jako usługa (laaS). Zapewnia zwirtualizowane zasoby obliczeniowe.
- Wdrażaj aplikacje i zarządzaj nimi w chmurze AWS, nie martwiąc się o infrastrukturę, na której działają te aplikacje.
- AWS Lambda służy do uruchamiania i wykonywania kodu zaplecza. Nie można go użyć do wdrożenia aplikacji.
- AWS Lambda pomaga Ci w Proces ETL.
- Najlepszą praktyką funkcji Lambda w AWS jest użycie odpowiedniego „limitu czasu”.
- Niewłaściwe jest używanie pakietów oprogramowania lub aplikacji AWS Lambda, które opierają się na wywołaniach bazowych Windows PPWU
- AWS Lambda jest narzędziem wysoce elastycznym.
- Narzędzie AWS Lambda nie nadaje się do małych projektów.
- Częstym zdarzeniem, które zostanie wywołane podczas korzystania z AWS Lambda, jest wstawienie, aktualizacja i usunięcie tabeli danych Dynamo DB.