Wprowadzenie do dostępnych wyzwalaczy do wywoływania funkcji lambda

Wprowadzenie Do Dostepnych Wyzwalaczy Do Wywolywania Funkcji Lambda



AWS Lambda to niesamowita usługa oparta na chmurze, która zrewolucjonizowała świat bezserwerowy. W rzeczywistości jest to oprogramowanie jako usługa (SaaS), które można łatwo i szybko skonfigurować i które pomaga zmniejszyć ogólny budżet infrastruktury chmury. Musisz po prostu zaprojektować swój kod i uruchomić go za pomocą funkcji lambda.

Teraz chodzi o to, jak powinieneś wykonać swój kod w funkcji, a odpowiedzią na to jest to, że istnieje długa lista metod, za pomocą których możesz wywoływać lub wyzwalać funkcje lambda. Obejmuje to wiele innych usług AWS, których można użyć do wywołania żądanej funkcji, gdy jest to wymagane.

W tym artykule zobaczysz krótkie wyjaśnienie dotyczące usług i technik, które można zastosować do wywoływania funkcji lambda w Amazon.







Rodzaje Inwokacji

Zanim przejdziemy dalej, omówmy dwa główne typy wywołań, które może obsłużyć funkcja lambda.



  • Inwokacje synchroniczne
  • Wywołania asynchroniczne
  1. Inwokacje synchroniczne
    W wywołaniach synchronicznych usługa wywołująca lambdę musi czekać, aż wyniki zostaną do niej zwrócone, a następnie kontynuować resztę procesu. Możemy również powiedzieć, że wyjście funkcji lambda jest wymagane przez samą funkcję lub usługę, która wywołała tę lambdę.
  2. Wywołania asynchroniczne

    Tutaj nie trzeba czekać, aż funkcje lambda przekażą wyniki z powrotem do wywołującego. Jest to używane głównie do powiadomień lub wyzwalania innych niezależnych zdarzeń w AWS. Usługa, która chce wywołać funkcję lambda, po prostu wysyła wyzwalacz, a ta operacja jest umieszczana w kolejce w lambdzie i zostanie wykonana w swojej turze.



Różne sposoby wywoływania lambda

Tutaj zobaczysz wiele sposobów wywoływania funkcji lambda. Wiedza o tym jest bardzo pomocna przy następnym projektowaniu prostej, ale efektywnej kosztowo infrastruktury AWS.





Bezpośrednie wywoływanie funkcji lambda

W większości przypadków funkcje lambda są zaprojektowane do wyzwalania przy użyciu innych usług, ale można je wywołać bezpośrednio za pomocą konsoli zarządzania AWS, AWS CLI oraz poprzez adres URL funkcji.

Wywoływanie Lambdy z konsoli zarządzania

Kiedy tworzysz dowolną funkcję lambda w konsoli AWS, możesz ją łatwo wywołać za pomocą opcji uruchomienia testowego w konsoli. The Test przycisk jest dostępny w sekcji kodu funkcji lambda.



Możesz utworzyć niestandardowe zdarzenie, a także użyć konsoli z niestandardowym wzorcem zdarzenia.

W ten sposób można wywołać funkcję lambda z konsoli AWS.

AWS CLI

AWS daje możliwość korzystania ze wszystkich swoich zasobów za pomocą interfejsu wiersza poleceń AWS. Za pomocą tego interfejsu wiersza polecenia można również wywołać dowolną funkcję lambda. Może to być bardzo skuteczne w testowaniu rzeczy na etapach rozwoju. Podążanie za poleceniem AWS CLI może być użyte jako wyzwalacz do wywołania funkcji lambda.

[e-maile chronione] :~$ wywołanie aws lambda \
--nazwa-funkcji < Wprowadź nazwę funkcji lambda > \
-- ładunek < Wartość wejściowa dla Funkcja lambda > \
--cli-binarny-format < podstawa64 | raw-in-base64-out > < Nazwa pliku wyjściowego >

Funkcja została pomyślnie uruchomiona i można to również zaobserwować na wyjściu.

URL funkcji

URL funkcji jest w rzeczywistości punktem końcowym HTTP, który można skonfigurować dla funkcji lambda. Ten adres URL może być używany do wyzwalania funkcji lambda, a także możesz udostępniać ten adres URL innym użytkownikom, nawet poza kontem AWS, aby wywoływać funkcje lambda. Chociaż powinieneś być ostrożny z adresami URL funkcji, każdy, kto ma ten link, może wywołać twoją funkcję lambda niezliczoną ilość razy, a wszystkie koszty będą na twojej głowie.

Adres URL funkcji można skonfigurować zarówno podczas tworzenia, jak i po utworzeniu funkcji lambda. W tym celu wystarczy przejść do ustawień zaawansowanych w sekcji konfiguracji i sprawdzić Włącz funkcję URL skrzynka.

Jeśli nie podałeś adresu URL funkcji podczas tworzenia funkcji lambda, możesz to zrobić później. W tym celu musisz przejść do zakładki konfiguracji, wybrać adres URL funkcji i kliknąć Utwórz adres URL funkcji .

W ten sposób tworzony jest adres URL funkcji i używany do wywołania funkcji lambda.

Wywołaj funkcje lambda za pomocą usług AWS

Wiele usług AWS można skonfigurować jako wyzwalacz do wywoływania funkcji lambda. Wystarczy skonfigurować usługi AWS jako wyzwalacz do wywołania funkcji lambda. Tutaj przejdziemy przez wszystkie te usługi z wyjaśnieniem, jak używać ich jako wyzwalaczy lambda.

Brama API

Jest to usługa AWS, która jest szeroko stosowana do tworzenia i zarządzania API w Twoim modelu aplikacji. Interfejsy API dają bardzo elastyczny sposób generowania żądań lub wywołań z jednego pakietu oprogramowania do innego pakietu, którego nie możemy ujawnić bezpośrednio i po prostu chcemy zachować za kulisami.

Aby dodać dowolną usługę jako wyzwalacz do funkcji lambda, po prostu przejdź do funkcji lambda i kliknij dodaj wyzwalacz.

Następnie możesz wybrać usługę, którą chcesz dołączyć jako wyzwalacz do funkcji lambda. W tej sekcji wybieramy bramkę API jako wyzwalacz funkcji lambda.

Następnie skonfiguruj usługę tak, jak chcesz, aby działała w strukturze Twojej aplikacji.

Brama API obsługuje dwa typy interfejsów API, które można wykorzystać do wywołania funkcji lambda.

API HTTP : Służą do generowania punktów końcowych HTTP, które są kierowane do funkcji lambda. Interfejsy API HTTP zapewniają mniejszą funkcjonalność i są mniej kosztowne w użyciu.

REST API : Jeśli chcesz mieć więcej funkcji w swoim API, musisz wybrać REST API. Te interfejsy API mogą wywoływać funkcję lambda i używać tych samych metod HTTP, zapewniając większą elastyczność i niezależność.

Wiadro S3

Istnieje wiele przypadków użycia, w których zobaczysz, że wiadra S3 działają jako wyzwalacz do wywołania funkcji lambda. Możesz skonfigurować zasobnik S3, aby wyzwalał funkcję lambda dla określonego zdarzenia S3.

Na przykład chcesz zbierać metadane dowolnego pliku, gdy jest on przesyłany do zasobnika. W tym celu tworzysz kod i wdrażasz go w funkcji lambda. Jako wyzwalacz Lambda wybierz wiadro S3. Jako typ zdarzenia wybierz umieść obiekt . Dzięki temu za każdym razem, gdy do zasobnika dodawany jest nowy plik, wywoływana jest funkcja lambda, a metadane obiektu są gromadzone i przechowywane w lokalizacji docelowej, gdy określisz.

Może istnieć wiele innych scenariuszy, w których S3 może być używany jako wyzwalacz do wywołania funkcji lambda.

System równoważenia obciążenia

Załóżmy, że Twoja aplikacja jest zaprojektowana do uruchamiania na funkcjach lambda, ponieważ funkcja lambda jest najbardziej opłacalnym rozwiązaniem dla prostej aplikacji opartej na chmurze. Teraz, aby udostępnić swoją aplikację użytkownikom końcowym, możesz chcieć dołączyć przed nią moduł równoważenia obciążenia. W tej sekcji wybierz moduł równoważenia obciążenia, który działa jako wyzwalacz do wywołania funkcji lambda. Pamiętaj, że moduł równoważenia obciążenia aplikacji można skonfigurować tylko dla tego zadania, ponieważ inne moduły równoważenia obciążenia nie są obsługiwane przez funkcje lambda.

Aby dodać load balancer aplikacji do funkcji lambda, należy najpierw utworzyć grupę docelową i funkcja lambda jest do niej dodawana. Teraz nowo utworzoną grupę docelową można dodać do słuchaczy load balancera aplikacji.

CloudFront

Amazon CloudFront to w rzeczywistości sieć CDN (Content Delivery Network) i służy do buforowania danych aplikacji w lokalizacjach brzegowych, które są znacznie bliżej użytkowników końcowych w porównaniu do rzeczywistych serwerów aplikacji. Korzystając z CloudFront, możesz naprawdę skrócić czas odpowiedzi, aby udostępnić statyczne treści użytkownikom końcowym na całym świecie.

Funkcje lambda można wyzwolić za pomocą usługi CloudFront. W tym celu musisz wdrożyć funkcję lambda w lokalizacjach brzegowych na całym świecie, znanych jako [e-maile chronione]

Możesz ustawić CloudFront jako wyzwalacz, aby wysyłać żądania do [e-maile chronione] poprzez CloudFront, aby skrócić czas reakcji. Jako [e-maile chronione] jest wdrożony we wszystkich lokalizacjach brzegowych na całym świecie, użytkownicy końcowi mają do czynienia z minimalnym czasem odpowiedzi dzięki dostępowi do lambda wdrożonego w najbliższej lokalizacji brzegowej.

Aby to skonfigurować, po prostu przejdź do dodaj wyzwalacz i wybierz usługę CloudFront. Tam zobaczysz wdrożyć do [e-maile chronione] opcja.

Teraz wystarczy wykonać czynności konfiguracyjne i rozpocząć.

Dzienniki CloudWatch

Ilekroć myślisz o monitorowaniu w chmurze AWS, pierwszą rzeczą, która przychodzi na myśl, jest CloudWatch, ponieważ jest to bardzo rozbudowana usługa monitorowania, którą w bardzo pomocny sposób można skonfigurować dla różnych usług.

Logi CloudWatch, jak sama nazwa wskazuje, to usługa rejestrowania, która może służyć do przechowywania wszelkiego rodzaju logów. Możesz utworzyć różne grupy dzienników dla różnych usług, aby oddzielić dzienniki. Te dzienniki mogą służyć do wyzwalania funkcji lambda na podstawie odbieranych zdarzeń, niezależnie od usługi lub procedury, która generuje te zdarzenia.

Możesz skonfigurować wyzwalacz z konsoli funkcji lambda lub bezpośrednio z logów CloudWatch. Aby to zrobić z konsoli CloudWatch wystarczy przejść do usługi CloudWatch i otworzyć grupy logów. Tutaj musisz stworzyć filtr subskrypcji lambda.

Następnie wybierz żądaną funkcję lambda i gotowe.

Teraz, gdy CloudWatch pobiera ten strumień dziennika, działa jako wyzwalacz do wywołania funkcji lambda.

EventBridge

Amazon EventBridge (wcześniej znany jako CloudWatch Events) to usługa AWS, która umożliwia tworzenie reguł zdarzeń w celu uruchomienia określonej usługi AWS w przypadku określonego zdarzenia, które ma miejsce na koncie AWS.

Istnieje wiele różnych reguł, które można ustawić dla usług AWS (takich jak tworzenie instancji EC2 lub zdarzenia bazy danych RDS), a także usług innych firm (takich jak zdarzenie push GitHub). Reguły te można dalej łączyć z innymi usługami, takimi jak funkcje lambda, w taki sposób, że za każdym razem, gdy ta reguła jest spełniona, wywołuje funkcję lambda.

Jeśli masz już ustawioną regułę EventBridge, możesz łatwo dodać tę regułę jako wyzwalacz do funkcji lambda. Wybierz EventBridge jako wyzwalacz i po prostu podaj nazwę reguły.

Istniejąca reguła jest dodawana w tym miejscu jako wyzwalacz, ale w tym momencie można również utworzyć regułę.

DynamoDB

Być może wiesz, że DynamoDB to tylko baza danych NoSQL i pojawia się jako w pełni oddzielna usługa w AWS. Jest to w pełni skonfigurowana bezserwerowa baza danych i możesz po prostu od razu zacząć tworzyć w niej tabele. Te tabele DynamoDB można skonfigurować tak, aby działały jako wyzwalacze do wywoływania funkcji lambda.

Dane z DynamoDB mogą być ładowane do lambdy jako dane wejściowe w postaci wsadów i przetwarzane za pomocą kodu wdrożonego w lambdzie.

Kinesis

Jeśli chcesz szybko zbierać i analizować dane w czasie rzeczywistym, możesz skorzystać z AWS Kinesis. Załóżmy, że chcesz przetworzyć dane zebrane przez strumienie danych Kinesis za pomocą funkcji lambda. Wystarczy wywołać funkcję lambda za każdym razem, gdy dane są rejestrowane przez Kinesis.

Właśnie skończyłeś konfigurować strumień danych Kinesis, aby wywołać funkcję lambda.

SNS

Jest to po prostu usługa powiadomień, która jest powszechnie używana do wysyłania powiadomień z jednej usługi AWS do drugiej, ponieważ czasami nie ma możliwości skonfigurowania powiadomień bezpośrednio z jednej usługi do drugiej. Za pomocą tej usługi można wyzwalać funkcje lambda.

Najpierw utwórz temat SNS, a następnie użyj go do wywołania funkcji lambda.

Musisz wybrać nazwę swojego tematu SNS. Nie ma innych konfiguracji ani ustawień.

Wniosek

Amazon Lambda to naprawdę przełom w architekturze chmury. Tworzenie i wdrażanie aplikacji jeszcze nigdy nie było tak łatwe i proste. Pozwala po prostu stworzyć swój kod w dowolnym popularnym frameworku i przesłać go do lambda, a następnie zostanie wykonany. Istnieje długa lista innych usług, które mogą być połączone z lambdą AWS i działać jako wyzwalacz do wywoływania funkcji lambda tylko wtedy, gdy jest to wymagane. Nie ma ciągłego kosztu działania serwera, ale opłata zostanie naliczona w zależności od liczby wyzwalaczy i czasu wykonania kodu.