Co to jest Lambda AWS? Funkcja Lambda z przykładami
⚡ Inteligentne podsumowanie
AWS Lambda to platforma obliczeniowa oparta na zdarzeniach i bezserwerowa od Amazon Usługi sieciowe, które uruchamiają Twój kod w odpowiedzi na wyzwalacze, automatycznie obsługując dostarczanie, skalowanie i zarządzanie serwerem, dzięki czemu możesz skupić się wyłącznie na logice biznesowej.

Zanim zaczniesz poznawać AWS Lambda, warto zrozumieć, co oznacza serwerowość.
Co to jest Serverless?
Termin „servless” odnosi się ogólnie do aplikacji bezserwerowych. Aplikacje bezserwerowe to takie, które nie wymagają udostępniania serwerów i zarządzania nimi.
Co to jest Lambda AWS?
AWS Lambda to sterowana zdarzeniami, bezserwerowa platforma obliczeniowa dostarczana przez Amazon jako część Amazon Usługi sieciowe. Dzięki temu nie musisz się martwić o to, które zasoby AWS uruchomić ani jak nimi zarządzać. Zamiast tego wystarczy umieścić kod w Lambdzie, a on zostanie uruchomiony.
W AWS Lambda kod jest wykonywany na podstawie odpowiedzi zdarzeń w usługach AWS, takich jak dodawanie lub usuwanie plików w kontenerze S3, żądanie HTTP z Amazon Brama API i podobne zdarzenia. Jednakże, Amazon Lambda może być używana tylko do wykonywania zadań w tle.
Funkcja AWS Lambda pozwala Ci skupić się na Twoim głównym produkcie i logice biznesowej zamiast zarządzać kontrolą dostępu do systemu operacyjnego (OS), poprawkami systemu operacyjnego, dopasowywaniem 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, PythonFunkcja AWS Lambda obsługuje między innymi języki Go i C#.
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 AWS Lambda po uruchomieniu przez usługi AWS.
Krok 5: AWS pobiera opłaty tylko za wykonanie kodu 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
- Gdy punkt końcowy HTTP Get/Post URL jest trafiony
- 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 opłata za usługi AWS zostanie naliczona dopiero po wykonaniu kodu AWS Lambda. W przeciwnym razie nie musisz nic płacić.
Zdarzenia wyzwalające AWS Lambda
Poniżej znajdują się zdarzenia, które zostaną wyzwolone podczas korzystania z AWS Lambda.
- Wstawianie, aktualizowanie i usuwanie danych w 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 w regularnym czasie.
- Modyfikacje obiektów w segmentach S3
- Powiadomienia wysyłane z Amazon SNS.
- Do przetwarzania dzienników CloudTrail można użyć usługi AWS Lambda.
- 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: Środowisko wykonawcze umożliwia działanie funkcji w różnych językach w tym samym bazowym środowisku wykonawczym. Pomaga to skonfigurować funkcję w środowisku wykonawczym. Dopasowuje się również do wybranego środowiska. język programowania.
Źródło zdarzenia: Źródłem zdarzenia jest usługa AWS, taka jak Amazon SNS lub usługa niestandardowa. Ten wyzwalacz pomaga funkcji wykonać jej logikę.
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 adnotację kodu funkcji za pomocą niestandardowych instrukcji rejestrowania, które ułatwiają analizę przepływu wykonywania i wydajności funkcji AWS Lambda.
Jak korzystać z AWS Lambda
Teraz nauczymy się, jak używać AWS Lambda na przykładzie AWS Lambda:
Krok 1) Otwórz AWS Lambda URL
Iść do https://aws.amazon.com/lambda/ i zacznij.
Krok 2) Utwórz konto
Następnie załóż konto lub zaloguj się na istniejące konto.
Krok 3) Edytuj kod i kliknij Uruchom
Na następnej stronie Lambda edytuj kod i kliknij Uruchom.
Krok 4) Sprawdź wyjście
Zobaczysz wynik.
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 (IaaS). Zapewnia zwirtualizowane zasoby obliczeniowe. |
| Elastyczność | Nie oferuje żadnej elastyczności logowania się do instancji obliczeniowych. Pozwala na wybór niestandardowego systemu operacyjnego lub środowiska uruchomieniowego języka. | Zapewnia 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 przesłać go 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 kontra AWS Elastic Beanstalk
Oto kilka głównych różnic między AWS Lambda i Elastic Beanstalk.
| Parametry | Elastyczny AWS Beanstalk | 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 jej używać do wdrażania 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 dla Twojej aplikacji. | Nie można wybrać zasobów AWS, takich jak typ instancji EC2; Lambda oferuje zasoby na podstawie obciążenia. |
| Typ systemu | Jest to system stanowy. | Jest to system bezpaństwowy. |
Przypadki użycia AWS Lambda
Usługa AWS Lambda jest wykorzystywana w szerokim zakresie zastosowań, takich jak:
- Pomaga Ci w Proces 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 tworzenie kopii zapasowych codziennych zadań
- Skalowalne zaplecze (aplikacje mobilne, urządzenia IoT)
- Pomaga w wykonywaniu logiki zaplecza po stronie serwera
- Umożliwia filtrowanie i transformację danych
Najlepsze praktyki funkcji Lambda
Oto kilka najlepszych praktyk dotyczących funkcji AWS Lambda:
- Użyj odpowiedniego „limitu czasu”.
- Skorzystaj z funkcji lokalnej pamięci masowej o rozmiarze 500 MB, znajdującej się w folderze /temp.
- Zminimalizuj wykorzystanie kodu startowego, który nie jest bezpośrednio związany z przetwarzaniem 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:
- Nie należy używać AWS Lambda w przypadku pakietów oprogramowania lub aplikacji, które opierają się na wywoływaniu bazowych Windows RPC-y.
- Jeżeli jest on używany w przypadku niestandardowych aplikacji oprogramowania z umowami licencyjnymi, jak przetwarzanie dokumentów MS Office, Oracle bazy danych itp.
- Usługi AWS Lambda nie należy używać do niestandardowych procesów sprzętowych, takich jak akceleracja GPU i powinowactwo sprzętowe.
Zalety korzystania z AWS Lambda
Oto zalety i korzyści wynikające z używania AWS Lambda:
- AWS Lambda to niezwykle elastyczne narzędzie.
- Pomaga udzielać dostępu do zasobów, w tym sieci VPC.
- Autor bezpośrednio z WYSIWRedaktor YG w konsoli.
- Możesz go używać jako wtyczki do Eclipse oraz 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.
- Płacisz tylko za czas obliczeniowy wykorzystany na uruchomienie kodu.
- Możesz monitorować wydajność swojego kodu w czasie rzeczywistym za pomocą CloudWatch.
- Umożliwia uruchamianie kodu bez konieczności uruchamiania lub zarządzania innym serwerem.
- Pomaga wykonać kod tylko wtedy, gdy jest to konieczne.
- 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 zostać skonfigurowana przy użyciu zdarzeń zewnętrznych i timerów, aby można było jej używać do planowania.
- Funkcje lambda są bezstanowe, co pozwala na ich szybkie skalowanie.
- 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.
- Usługa AWS Lambda opiera się całkowicie na infrastrukturze AWS, dlatego nie możesz instalować żadnego dodatkowego oprogramowania, jeśli Twój kod tego wymaga.
- Jednoczesne wykonywanie ma domyślny limit 1,000 na region, który może zostać zwiększony na żądanie.
- Pojemność pamięci może się wahać od 128 MB do 10 240 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 jest ograniczony do 15 minut.




