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.

  • ☁️. Model bezserwerowy: Usługa AWS Lambda uruchamia kod bez konieczności konfigurowania ani zarządzania serwerami, co eliminuje konieczność łatania systemu operacyjnego, skalowania i planowania pojemności.
  • Wykonywanie sterowane zdarzeniami: Funkcje są wyzwalane z usług AWS, takich jak S3, DynamoDB, API Gateway i SNS, uruchamiane tylko w przypadku wystąpienia zdarzenia.
  • 🧩 Wsparcie językowe: Lambda obsługuje Node.js, Python, Java, Go, C# i Ruby, a także niestandardowe środowiska uruchomieniowe dla innych języków.
  • ???? Płać za użycie: Billobowiązuje tylko w czasie wykonywania kodu, mierzonym w milisekundach, przy stałym miesięcznym bezpłatnym poziomie miliona żądań.
  • 🛠️. Koncepcje podstawowe: Funkcje, środowiska wykonawcze, źródła zdarzeń, warstwy i strumienie dziennika definiują sposób, w jaki Lambda wykonuje i zarządza kodem.
  • 🤖 Pomoc AI: GitHub Copilot i Amazon Q generuje kod Lambda, podczas gdy Lambda koordynuje generatywne wnioskowanie AI poprzez Amazon Podłoże skalne.

Czym jest AWS Lambda

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:

Schemat blokowy AWS Lambda

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.

Jak korzystać z AWS Lambda

Krok 2) Utwórz konto

Następnie załóż konto lub zaloguj się na istniejące konto.

Jak korzystać z AWS Lambda

Krok 3) Edytuj kod i kliknij Uruchom

Na następnej stronie Lambda edytuj kod i kliknij Uruchom.

Krok 4) Sprawdź wyjście

Zobaczysz wynik.

Jak korzystać z AWS Lambda

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.

FAQ

AWS Lambda natywnie obsługuje Node.js, Python, Java, Go, C#, PowerShell i Ruby. Interfejs API środowiska uruchomieniowego i obsługa obrazów kontenerów umożliwiają uruchamianie niemal dowolnego innego języka, dzięki czemu zespoły rzadko są ograniczone preferowanym stosem.

Usługa AWS Lambda oferuje stały, bezpłatny poziom miliona żądań i 400 000 GB-sekund mocy obliczeniowej miesięcznie. Poza tym płacisz tylko za żądania i czas obliczeniowy faktycznie wykorzystywany przez Twój kod, rozliczany za milisekundę.

Zimny ​​start to krótkie opóźnienie, gdy Lambda inicjuje nowe środowisko wykonawcze dla funkcji, która była bezczynna. Można je skrócić, stosując współbieżność aprowizowaną, mniejsze pakiety lub SnapStart. Java funkcje.

Tak. Oprócz przesyłania archiwum ZIP, Lambda pozwala spakować funkcję jako obraz kontenera o rozmiarze do 10 GB. To rozwiązanie jest odpowiednie dla większych zależności i bibliotek uczenia maszynowego, a jednocześnie…ping ten sam model wykonywania operacji sterowany zdarzeniami i bezserwerowy.

Lambda uruchamia krótkie, sterowane zdarzeniami funkcje z automatycznym skalowaniem i rozliczeniem za milisekundę. AWS Fargate obsługuje dłuższe obciążenia kontenerowe bez konieczności zarządzania serwerami. Wybierz Lambdę, aby szybko reagować na zdarzenia, a Fargate, aby zapewnić stabilne, długotrwałe zadania kontenerowe.

Tak. Lambda zazwyczaj zasila aplikacje AI, uruchamiając lekkie wnioskowanie i koordynując wywołania do usług, takich jak Amazon Bedrock i SageMaker. Obsługa obrazów kontenerów ułatwia pakowanie bibliotek uczenia maszynowego, a Lambda zajmuje się skalowaniem generatywnego procesu AI.

Tak. Drugi pilot GitHub zapisuje funkcje obsługi z komentarza lub nazwy, podczas gdy Amazon Q Developer dodaje obsługę AWS dla zasad IAM, CloudFormation i wywołań SDK, przyspieszając opracowywanie rozwiązań bezserwerowych.

Przypisz każdej funkcji rolę IAM o najniższych uprawnieniach, przechowuj sekrety w zaszyfrowanych zmiennych środowiskowych lub w Menedżerze Sekretów i umieść poufne funkcje w sieci VPC. CloudWatch i CloudTrail rejestrują następnie aktywność w celu monitorowania i audytu.

Podsumuj ten post następująco: