Wprowadzenie do AWS Lambda dla początkujących

Photo of author

By maciekx

Poznajmy krok po kroku podstawy AWS Lambda i proces uruchamiania funkcji.

Wprowadzenie

Tworząc aplikacje, zależy Ci na zapewnieniu użytkownikom jak najlepszych doświadczeń. Aby osiągnąć ten cel, Twoja aplikacja potrzebuje kodu zaplecza, który reaguje na różne zdarzenia.

Jednakże, zarządzanie infrastrukturą potrzebną do hostowania i wykonywania kodu zaplecza, wymaga alokacji, skalowania serwerów, dbania o aktualizacje systemów operacyjnych, stosowania poprawek bezpieczeństwa, a także monitorowania całej tej infrastruktury pod kątem wydajności i dostępności.

Czy nie byłoby idealnie móc skupić się na tworzeniu wyjątkowych aplikacji, nie przejmując się przy tym całą infrastrukturą? Właśnie tutaj pojawia się AWS Lambda.

Czym jest AWS Lambda?

AWS Lambda to usługa obliczeniowa typu serverless, która pozwala na uruchamianie kodu bez konieczności martwienia się o serwery i ich zarządzanie. Możesz wdrożyć swoją aplikację lub usługi backendowe za pomocą AWS Lambda, nie potrzebując żadnej administracji. Po prostu prześlij swój kod do Lambdy, a usługa zajmie się jego uruchomieniem, a także skalowaniem infrastruktury, zapewniając przy tym wysoką dostępność.

Kod, który jest wykonywany w AWS Lambda, nosi nazwę funkcji Lambda. Obecnie usługa wspiera następujące języki programowania:

  • Java
  • Python
  • C#
  • Node.js
  • Go
  • PowerShell
  • Ruby

Dostarcza ona również interfejs API środowiska wykonawczego, umożliwiając uruchamianie funkcji napisanych w innych (natywnych) językach programowania.

Aby rozpocząć pracę z AWS Lambda, potrzebujesz tylko jednej rzeczy – konta na AWS, z którego będziesz mieć dostęp do konsoli zarządzania AWS.

AWS Lambda można określić jako FaaS (Function-as-a-Service), czyli funkcję jako usługę, oferowaną przez AWS.

Funkcje AWS Lambda

Poniżej przedstawione są najważniejsze funkcje oferowane przez AWS Lambda:

  • AWS Lambda z łatwością skaluje infrastrukturę bez konieczności dodatkowej konfiguracji, co redukuje wymagane nakłady pracy operacyjnej.
  • Oferuje szereg opcji integracji, takich jak AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit i wiele innych, które mogą wywoływać zdarzenia.
  • Nie wymaga inwestycji początkowych. Płacisz tylko za zużycie pamięci przez funkcję Lambda oraz minimalny koszt liczby żądań, dzięki czemu jest to rozwiązanie ekonomiczne.
  • AWS Lambda jest bezpieczna. Wykorzystuje AWS IAM do definiowania ról i zasad bezpieczeństwa.
  • Zapewnia odporność na awarie zarówno dla usług uruchamiających kod, jak i dla samych funkcji. Nie musisz obawiać się o niedostępność aplikacji.

Cennik AWS Lambda

Koszt korzystania z AWS Lambda zależy od czasu wykonania oraz ilości pamięci wykorzystanej przez funkcję Lambda. Maksymalnie można przydzielić 3008 MB pamięci do funkcji Lambda, w krokach co 64 MB. Poniżej znajduje się tabela cen, przedstawiająca koszty dla różnych limitów pamięci na 100 milisekund.

Jak działa AWS Lambda?

  • Na początku tworzysz funkcję, określając podstawowe parametry, takie jak język programowania, który ma być wykorzystany.
  • Następnie piszesz kod w edytorze Lambda lub przesyłasz go w pliku ZIP, w jednym z obsługiwanych języków programowania.
  • Po przesłaniu kodu usługa Lambda zajmuje się skalowaniem zasobów, wdrażaniem poprawek i administracją infrastrukturą.
  • Aby uruchomić kod, należy wywołać funkcję Lambda za pomocą zewnętrznej usługi AWS, która jest w stanie to zrobić. Przykładem może być zasobnik S3.
  • W ciągu kilku sekund, Lambda jest gotowa do automatycznego uruchomienia Twojej funkcji, gdy wystąpi zdarzenie. AWS Lambda uruchamia Twój kod, gdy zdarzenie wyzwalające zostanie wywołane, zapewniając przy tym zarządzanie serwerami i ich monitoring.
  • Jeśli Twoja funkcja wymaga dużej mocy obliczeniowej, usługa wybierze instancję z większą mocą i pamięcią RAM. Jeśli natomiast Twój kod wykonuje się tylko przez kilka sekund, wybierze instancję z minimalnymi zasobami, co pozwoli zaoszczędzić pieniądze i czas.

Tak działa AWS Lambda w szczegółach. Teraz pokażę Ci demonstrację działania AWS Lambda.

Tworzenie funkcji Lambda AWS

W ramach tego artykułu, stworzę bardzo prostą grę, wykorzystując funkcję Lambda napisaną w Node.js. Będzie to funkcja, która symuluje rzut kostką, losowo generując liczbę z przedziału od 1 do 6 i ją wyświetlając.

  • Przejdź do konsoli zarządzania AWS i w pasku wyszukiwania wpisz „Lambda”, a następnie kliknij „Lambda”.

  • Pojawi się okno funkcji. Kliknij „Utwórz funkcję”.

  • Otrzymasz różne opcje tworzenia funkcji wraz z ich opisem. Ponieważ tworzę ją od podstaw, wybieram „Autor od podstaw”.

  • Następnie musisz wypełnić kilka niezbędnych informacji o funkcji Lambda. Wprowadź nazwę funkcji i wybierz wersję Node.js, której chcesz użyć.
  • Musisz również wybrać rolę wykonawczą. Ponieważ nie mam zdefiniowanej żadnej istniejącej roli na moim koncie AWS, wybiorę opcję tworzenia nowej roli. Kliknij „Utwórz funkcję”.

  • Otrzymasz wiadomość o pomyślnym utworzeniu funkcji. Kliknij okno „Projektant”, aby je zminimalizować.

  • Następnie pojawi się okno „Kod funkcji”.
  • Umieść poniższy kod w edytorze. Możesz również przesłać kod w pliku ZIP, ale ja użyję wbudowanego edytora kodu AWS.

  • To prosty kod, który przyjmuje liczby tylko z przedziału od 1 do 6 i wykorzystuje funkcję losową do wygenerowania liczby i wyświetlenia jej po wywołaniu funkcji.
exports.handler = async (event) => {
const min = 1;
const max = 6;
const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
const out="Dice throw result is: " + randomNum;
return out;
};
  • Teraz kliknij przycisk „Test” w prawym górnym rogu. Otrzymasz wyskakujące okienko, aby skonfigurować zdarzenie testowe, wprowadź nazwę zdarzenia i kliknij opcję „Konfiguruj”.

  • Teraz kliknij „Zapisz”, a następnie „Testuj”.

W sekcji „Rezultat wykonania” zobaczysz wynik działania logiki funkcji, którą właśnie napisaliśmy. Wyświetla się komunikat – „Wynik rzutu kostką to: 2”.

  • Przewiń w górę i kliknij „szczegółowe wyniki wykonania”, aby uzyskać pełne podsumowanie tej funkcji Lambda wraz z oczekiwanym wynikiem. Dostępne są również szczegóły, takie jak identyfikator żądania, czas trwania, czas trwania rozliczeniowy, skonfigurowane zasoby, oraz dane wyjściowe dziennika.

  • Kliknij zakładkę „monitorowanie”, aby zwizualizować logi obserwacji w chmurze i wydajność funkcji Lambda w określonym czasie.

  • Jeśli przejdziesz do logów wygenerowanych przez CloudWatch, możesz zobaczyć szczegóły dotyczące tego, co wydarzyło się, gdy uruchomiła się funkcja Lambda, która była monitorowana przez CloudWatch.

Podsumowanie

Rozpoczęcie pracy z Lambdą jest bardzo proste. Jeżeli Twoja aplikacja biznesowa wymaga uruchomienia kodu zaplecza, warto rozważyć wykorzystanie platformy serverless, takiej jak AWS Lambda.

Podobał Ci się ten artykuł? Zachęcamy do podzielenia się nim ze znajomymi!


newsblog.pl