Samouczek AWS Lambda: Twój przewodnik po Amazon Serverless Computing



Ten samouczek AWS Lambda opisuje bezserwerową platformę obliczeniową AWS, w tym szczegóły dotyczące funkcji Lambda, źródła zdarzeń, cennika Lambda wraz z przykładem użycia.

Samouczek AWS Lambda

Dzisiaj porozmawiamy o AWS Lambda. AWS Lambda to usługa obliczeniowa oferowana przez Amazon. Musisz być ciekawy, ponieważ istnieje kilka innych usług obliczeniowych z AWS, takich jak AWS EC2, AWS Elastic Beanstalk, AWS Opsworks itp. Po co więc inna usługa obliczeniowa? W tym samouczku AWS Lambda dowiesz się, czym jest AWS Lambda, dlaczego jest używany i w jakich przypadkach należy go rozważyć.

Zobaczmy, jak Amazon definiuje AWS Lambda, a następnie zagłębimy się w kluczowe pojęcia, zrozumiemy przypadek użycia, a na końcu zajmiemy się praktycznymi ćwiczeniami.





Lambda Obliczenia bezserwerowe - samouczek AWS Lambda

Co to jest AWS Lambda?

Amazon wyjaśnia, AWS Lambda (i lambda) jako usługa obliczeniowa `` bezserwerowa '', co oznacza, że ​​programiści nie muszą się martwić o to, które zasoby AWS mają uruchomić, ani jak będą nimi zarządzać, po prostu umieszczają kod na lambdzie i działa , to takie proste! Pomaga skupić się na kompetencjach podstawowych, tj. Tworzeniu aplikacji lub kodzie.



Gdzie będę używać AWS Lambda?

AWS Lambda wykonuje kod zaplecza, automatycznie zarządzając zasobami AWS. Kiedy mówimy „zarządzaj”, oznacza to uruchamianie lub zamykanie instancji, kontrole stanu, automatyczne skalowanie, aktualizowanie lub łatanie nowych aktualizacji itp.

Więc jak to działa?

Kod, który chcesz uruchomić Lambda, jest znany jako Funkcja lambda . Teraz, jak wiemy, funkcja działa tylko wtedy, gdy jest wywoływana, prawda? Tutaj, Źródło zdarzenia jest bytem, ​​który wyzwala funkcję Lambda, a następnie zadanie jest wykonywane.

Weźmy przykład, aby lepiej to zrozumieć.



Załóżmy, że masz aplikację do przesyłania obrazów. Teraz, gdy przesyłasz obraz, przed jego przechowywaniem wiąże się wiele zadań, takich jak zmiana rozmiaru, stosowanie filtrów, kompresja itp.

Tak więc to zadanie przesyłania obrazu można zdefiniować jako plik Źródło zdarzenia lub „wyzwalacz”, który wywoła funkcję Lambda, a następnie wszystkie te zadania można wykonać za pomocą funkcji Lambda.

W tym przykładzie programista musi po prostu zdefiniować źródło zdarzenia i przesłać kod.

Zrozummy teraz ten przykład z prawdziwymi zasobami AWS,

Rys. Przypadek użycia Lambda z S3

Tutaj będziemy przesyłać obrazy w postaci obiektów do wiadra S3. To przesłanie obrazu do zasobnika S3 stanie się źródłem zdarzenia lub „wyzwalaczem”.

Cały proces, jak widać na diagramie, jest podzielony na 5 kroków, zrozummy każdy z nich.

  1. Użytkownik przesyła obraz (obiekt) do zasobnika źródłowego w S3 z dołączonym powiadomieniem dla Lambda.
  2. Powiadomienie jest odczytywane przez S3 i decyduje, gdzie wysłać to powiadomienie.
  3. S3 wysyła powiadomienie do Lambda, to powiadomienie działa jako wywołanie funkcji lambda.
  4. Rolę wykonawczą w Lambdzie można zdefiniować za pomocą IAM (Zarządzanie tożsamością i dostępem), aby nadać uprawnienia dostępu do zasobów AWS, w tym przykładzie będzie to S3.
  5. Na koniec wywołuje żądaną funkcję lambda, która działa na obiekcie, który został przesłany do zasobnika S3.

Gdybyś miał rozwiązywać ten scenariusz tradycyjnie, wraz z rozwojem, zatrudniłbyś ludzi do zarządzania następującymi zadaniami:

  • Rozmiar, dostępność i skalowanie grupy serwerów
  • Zarządzanie aktualizacjami systemu operacyjnego
  • Zastosuj poprawki bezpieczeństwa i
  • Monitoruj całą tę infrastrukturę pod kątem wydajności i dostępności.

Byłoby to kosztowne, żmudne i męczące zadanie, dlatego potrzeba AWS Lambda jest uzasadniona.AWS Lambda jest kompatybilna z Node.JS, Pythonem i Javą, więc możesz przesłać swój plik w formacie zip, zdefiniować źródło zdarzenia i gotowe!

Możesz przeczytać więcej o S3 AWS tutaj dla głębszego zrozumienia.

Teraz wiemy -Jak działa Lambda iCo robi Lambda s .

Ntak, zrozummy-

  • Gdzie używać Lambda?
  • Czemu służy Lambdainne usługi AWS Compute nie?

Gdybyś miał zaprojektować rozwiązanie problemu, powinieneś być w stanie zidentyfikować, gdzie użyć Lambda, prawda?

Tak więc jako architekt masz następujące możliwości wykonania zadania:

instancja klasy java
  • AWS EC2
  • AWS Elastic Beanstalk
  • AWS OpsWorks
  • AWS Lambda

Weźmy powyższy przypadek użycia jako przykład i zrozummy, dlaczego wybraliśmy Lambdę do rozwiązania tego problemu.

AWS OpsWorks i AWS ElasticBeanstalk służą do wdrażania aplikacji, więc nasz przypadek użycia jest nie aby stworzyć aplikację , ale do wykonania kodu zaplecza.

Więc dlaczego nie EC2?

Gdybyś miał używać EC2, musiałbyś zaprojektować wszystko, tj. Load balancer, woluminy EBS, stosy oprogramowania itp. W lambdzie nie musisz się o nic martwić, po prostu wstaw swój kod, a AWS zajmie się resztą!

Na przykład , w EC2 instalowałbyś pakiety oprogramowania na maszynie wirtualnej, które wspierałyby Twój kod, ale w Lambdzie nie musisz martwić się o żadną maszynę wirtualną, po prostu wstaw zwykły kod, a Lambda wykona go za Ciebie.

Ale jeśli twój kod będzie działał godzinami i spodziewasz się ciągłego strumienia żądań, prawdopodobnie powinieneś wybrać EC2, ponieważ architektura Lambda jest przeznaczona dla sporadycznego rodzaju obciążenia, w którym będą jakieś ciche godziny i kilka skoków w nie. wniosków.

Na przykład rejestrując aktywność e-mailową dla powiedzmy małej firmy, zobaczyłby więcej aktywności w ciągu dnia niż w nocy, mogą też być dni, kiedy jest mniej e-maili do przetworzenia, a czasami cały świat może zacząć wysyłać e-maile do Ciebie! W obu przypadkach Lambda jest do Twojej dyspozycji.

Biorąc pod uwagę ten przypadek użycia dla dużej firmy społecznościowej, w której e-maile nigdy się nie kończą, ponieważ ma ogromną bazę użytkowników, Lambda może nie być właściwym wyborem.

Możesz przeczytać więcej o EC2 AWS tutaj dla głębszego zrozumienia.

Ograniczenia AWS Lambda

Niektóre ograniczenia są specyficzne dla sprzętu, a niektóre są związane z architekturą, omówmy je wszystkie.

Ograniczenia sprzętowe obejmują rozmiar dysku, który jest ograniczony do 512 MB, pamięć może się wahać od 128 MB do 1536 MB. Następnie są inne, takie jak limit czasu wykonania można zmaksymalizować do zaledwie 5 minut, ładunek treści żądania nie może być większy niż 6 MB, a treść żądania ma 128 KB. Treść żądania jest podobna do danych wysyłanych za pomocą żądania „GET” lub „PUT” w protokole HTTP, gdzie treścią żądania byłby typ żądania, nagłówki itp.

W rzeczywistości nie są to ograniczenia, ale granice projektowe, które zostały ustalone w architekturze Lambda, więc jeśli Twój przypadek użycia ich nie pasuje, zawsze masz do dyspozycji inne usługi obliczeniowe AWS.

W tym samouczku AWS Lambda rozmawialiśmy o tym, że wykonywanie zadań w Lambdzie jest „nie” żmudne i męczące. Zajmijmy się teraz częścią wydatków.

Ceny w AWS Lambda

Podobnie jak większość usług AWS, AWS Lambda jest również usługą typu pay per use, co oznacza, że ​​płacisz tylko za to, z czego korzystasz, dlatego naliczana jest opłata według następujących parametrów

  • Liczba upraszanie które wprowadzasz do swojej funkcji lambda
  • Plik Trwanie dla którego jest wykonywany Twój kod.

Upraszanie

  • Opłaty są naliczane za liczbę żądań wykonanych we wszystkich funkcjach lambda.
  • AWS Lambda liczy żądanie za każdym razem, gdy rozpoczyna wykonywanie w odpowiedzi na źródło zdarzenia lub wywołanie wywołania, w tym wywołanie testu z konsoli. Spójrzmy teraz na ceny:
    • Pierwsze 1 milion żądań każdego miesiąca jest bezpłatnych.
    • 0,20 USD za milion żądań w późniejszym okresie.

Trwanie

  • Czas trwania jest obliczany od momentu rozpoczęcia wykonywania kodu do momentu jego powrotu lub zakończenia, jest zaokrąglany w górę do najbliższych 100 ms.
  • Cena zależy od ilości pamięci przydzielonej do funkcji, opłata wynosi 0,00001667 USD za każdy wykorzystany GB-sekundę.

* Źródło: oficjalna strona AWS

Jeśli dotarłeś do tej pory, jesteś gotowy na praktyczne w Lambdzie. Zabawmy się!

Praktyczne: AWS Lambda DIY

Stwórzmy funkcję Lambda, która będzie rejestrować „Obiekt został dodany” po dodaniu obiektu do określonego zasobnika w S3.

Krok 1: Z konsoli zarządzania AWS w sekcji obliczeniowej wybierz AWS Lambda.

Krok 2: Na konsoli AWS Lambda kliknij „Utwórz funkcję Lambda”.

Krok 3: Na następnej stronie musisz wybrać plan. Na przykład będziemy wybierać pustą funkcję dla naszego przypadku użycia.

Krok 4: Na następnej stronie (1) ustawiasz wyzwalacz, ponieważ będziemy pracować nad S3, (2) wybierz wyzwalacz S3, a następnie (3) kliknij Dalej.

Krok 5: Na stronie konfiguracji podaj szczegóły. Możesz umieścić swój własny kod lub skopiować ten sam kod z tego przypadku użycia. Następnie wypełnij obsługę i rolę, pozostaw ustawienia zaawansowane bez zmian, na koniec kliknij dalej.

Krok 6: Na następnej stronie przejrzyj wszystkie informacje i kliknij „Utwórz funkcję”.

Krok 7: Teraz, ponieważ stworzyliśmy funkcję dla wiadra S3, w momencie dodania pliku do wiadra S3 powinieneś otrzymać dziennik dla tego samego w CloudWatch, który jest usługą monitorowania z AWS.

Gratulacje!Pomyślnie wykonałeś funkcję Lambda.

Mam nadzieję, że spodobało Ci się szczegółowe zapoznanie się z samouczkiem AWS Lambda. Jest to jeden z najbardziej pożądanych obszarów wiedzy w ekosystemie AWS na stanowiskach takich jak architekt rozwiązań, inżynier chmury, inżynier DevOps. Oto zbiór aby pomóc Ci przygotować się do następnej rozmowy kwalifikacyjnej AWS.

Jeśli uważasz, że samouczek AWS Lambda jest odpowiedni, możesz zapoznać się z kursem prowadzonym na żywo i prowadzonym przez instruktora na stronie Edureka , współtworzony przez praktyków branży.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.