Konfiguracja AWS Lambda na potrzeby produkcji
Wdrażanie aplikacji na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
W testach działało
Funkcja przeszła wszystkie testy
W środowisku produkcyjnym przekracza limity czasu i ulega throttlingowi
Kod był poprawny — problem leżał w konfiguracji
Kluczowe ustawienia Lambda w produkcji
Pamięć
: skaluje też CPU i sieć
Limit czasu
: maks. czas w sekundach przed wymuszoną obsługą
Pamięć efemeryczna
: tymczasowe miejsce w /tmp
Współbieżność
: liczba jednoczesnych uruchomień
Dobór pamięci a powiązanie z CPU
Więcej pamięci =
proporcjonalnie więcej CPU
Funkcja intensywna obliczeniowo działa szybciej przy wyższej pamięci
Krótszy czas wykonania może oznaczać
niższy koszt
Dobieraj rozmiar przez testowanie, nie zgadywanie
Współbieżność: zarezerwowana a aprowizowana
Zarezerwowana współbieżność
Ogranicza maksymalną liczbę jednoczesnych wywołań
Chroni systemy downstream i inne funkcje
Aprowizowana współbieżność
Wstępnie rozgrzewa instancje — eliminuje zimny start
Przeznaczona dla funkcji użytkownika wrażliwych na opóźnienia
Pakowanie konfiguracji i współdzielenie kodu
Zmienne środowiskowe
: konfiguracja per środowisko
Warstwy
: współdzielenie kodu i zależności między funkcjami
Rozszerzenia
: działają obok funkcji, obsługując narzędzia
Trzymaj konfigurację poza pakietem wdrożeniowym
Łączenie Lambda z VPC
Podłącz Lambda do
prywatnych podsieci
, aby korzystać z zasobów wewnętrznych
Lambda tworzy
ENI
w twoim VPC
Grupy zabezpieczeń
kontrolują dostępne zasoby
Dostęp zewnętrzny wymaga bramy NAT lub punktu końcowego VPC
Obsługa błędów: destinations i DLQ
Wywołania asynchroniczne
ponawiane automatycznie
po błędzie
Lambda Destinations
: przekierowuje onSuccess i onFailure
Kolejka utraconych wiadomości (DLQ)
: przechwytuje zdarzenia, które nigdy się nie powiodły
Nigdy nie pozwól, by nieudane zdarzenie przepadło bez śladu
Czas na praktykę!
Wdrażanie aplikacji na AWS
Preparing Video For Download...