AWS Lambda – usługa typu Function as a Service w architekturze serverless w ramach platformy Amazon Web Services (AWS); umożliwiająca uruchamianie kodu aplikacji w odpowiedzi na zdarzenia bez konieczności zarządzania serwerami lub środowiskiem wykonawczym. Usługa jest elementem architektur chmurowych opartych na zdarzeniach.

Charakterystyka AWS Lambda umożliwia wykonywanie funkcji w odpowiedzi na zdarzenia generowane przez inne usługi AWS, takie jak Amazon S3, Amazon API Gateway, czy Amazon EventBridge. Kod jest uruchamiany w zarządzanym środowisku wykonawczym, a skalowanie odbywa się automatycznie w zależności od liczby zdarzeń.

Cechy AWS Lambda: brak konieczności zarządzania serwerami i systemem operacyjnym (model fully managed), automatyczne skalowanie poziome w odpowiedzi na liczbę zdarzeń, rozliczanie według rzeczywistego użycia (liczba wywołań i czas wykonania), integracja z innymi usługami AWS poprzez mechanizmy zdarzeń i wyzwalaczy, obsługa wielu języków programowania oraz możliwość definiowania własnych środowisk wykonawczych (custom runtime).

Usługa obsługuje wiele języków programowania, w tym Python, JavaScript (Node.js), Java, C# (.NET), Go oraz Ruby. Możliwe jest także definiowanie własnych środowisk wykonawczych (custom runtime). Możliwe jest również uruchamianie funkcji w innych językach dzięki mechanizmowi custom runtime, opartemu na obrazie kontenera lub interfejsie wykonawczym Lambda Runtime API.

Model rozliczeniowy AWS Lambda opiera się na zasadzie pay-as-you-go. Koszt zależy od: liczby wywołań funkcji, czasu wykonania funkcji (mierzonego w milisekundach), ilości przydzielonej pamięci, od której zależna jest również dostępna moc obliczeniowa, funkcje są bezstanowe, co wymusza korzystanie z zewnętrznych systemów przechowywania danych, możliwe opóźnienia pierwszego uruchomienia funkcji (tzw. ), szczególnie w przypadku integracji z Amazon VPC. Funkcje AWS Lambda podlegają określonym limitom. Maksymalny czas pojedynczego wykonania funkcji wynosi 15 minut,

Zastosowania Przykładowe, powszechne zastosowania AWS Lambda: implementacja backendów HTTP i REST przy użyciu Amazon API Gateway lub AWS ALB, przetwarzanie obiektów przesyłanych do Amazon S3 (np. generowanie miniatur, analiza danych), obsługa strumieni danych z i , realizacja zadań automatyzacyjnych i administracyjnych (np. reakcje na zdarzenia infrastrukturalne), budowa systemów opartych na architekturze mikrousług.

Przykłady Przykładowa funkcja AWS Lambda w języku Python zwracająca prostą odpowiedź HTTP: def lambda_handler(event, context): return { "statusCode": 200, "body": "Hello from AWS Lambda"

Analogiczna funkcja w JavaScript (Node.js): export const handler = async (event) => { return { statusCode: 200, body: "Hello from AWS Lambda"

Przypisy

Bibliografia

Kategoria:Amazon Web Services