Wprowadzenie do dostępnych wyzwalaczy, aby wywołać funkcję Lambda

Wprowadzenie do dostępnych wyzwalaczy, aby wywołać funkcję Lambda
AWS Lambda to niesamowita usługa oparta na chmurze, która zrewolucjonizowała świat bez serwera. W rzeczywistości jest to oprogramowanie jako usługa (SaaS), które można łatwo i szybko skonfigurować i jest pomocne w zmniejszeniu ogólnego budżetu infrastruktury w chmurze. Musisz po prostu zaprojektować kod i uruchom go za pomocą funkcji Lambda.

Teraz chodzi o to, w jaki sposób powinieneś wykonać kod w funkcji, a odpowiedź na to jest taka, że ​​istnieje długa lista metod, za pomocą których możesz wywołać lub uruchomić swoje funkcje Lambda. Obejmuje to wiele innych usług AWS, które można użyć do wywołania żądanej funkcji w razie potrzeby.

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

Rodzaje inwokacji

Zanim przejdziemy dalej, omówmy następujące dwa główne rodzaje inwokacji, z którymi funkcja Lambda może obsłużyć.

  • Inwokacje synchroniczne
  • Asynchroniczne inwokacje
  1. Inwokacje synchroniczne
    W synchronicznych inwokacjach usługa wywołująca Lambda musi poczekać, 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ę lambda.
  2. Asynchroniczne inwokacje

    Tutaj nie ma oczekiwania na funkcje Lambda, które zapewnią wyniki z powrotem do Inwidera. Służy to głównie do powiadomień lub do uruchomienia innych niezależnych wydarzeń w AWS. Usługa, która chce wywołać funkcję Lambda, po prostu wysyła spust, a operacja jest ustawiona w kolejce w Lambda i zostanie wykonana w swojej turze.

Różne sposoby wywołania Lambda

Tutaj zobaczysz wiele sposobów wywołania funkcji Lambda. Wiedząc, że jest to bardzo pomocne przy następnym zaprojektowaniu prostej, ale opłacalnej infrastruktury AWS.

Bezpośrednio przywołać funkcje Lambda

W większości przypadków funkcje Lambda są zaprojektowane tak, aby były wyzwalane za pomocą innych usług, ale możesz je wywołać bezpośrednio za pomocą konsoli zarządzania AWS, AWS CLI i za pośrednictwem URL funkcji.

Wzywając Lambda z konsoli zarządzania

Podczas tworzenia dowolnej funkcji Lambda w konsoli AWS możesz łatwo uruchomić ją za pomocą opcji przebiegu testowego w konsoli. Test Przycisk jest dostępny w sekcji kodu funkcji Lambda.

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

W ten sposób funkcja Lambda może być uruchamiana z konsoli AWS.

AWS Cli

AWS daje możliwość korzystania z wszystkich zasobów za pomocą interfejsu wiersza poleceń AWS. Dowolną funkcję Lambda można również wywołać z tym CLI. Może to być bardzo skuteczne w testowaniu rzeczy na etapach rozwoju. Po poleceniu AWS CLI może być używane jako spust do wywołania funkcji Lambda.

Ubuntu@ubuntu: ~ $ AWS lambda invoke \
--Nazwa funkcji \
--ładunek \
--Cli-binarne format < base64 | raw-in-base64-out >

Funkcja jest skutecznie wyzwalana i możesz 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 swoich funkcji Lambda. Ten adres URL może być używany do wyzwalania funkcji Lambda, a także możesz udostępnić ten adres URL innym użytkownikom, nawet poza konto AWS, aby wywołać funkcje Lambda. Chociaż powinieneś uważać na adresy URL funkcji, każdy z tym linkiem może niezliczone razy wywołać funkcję Lambda, a wszystkie koszty będą na twojej głowie.

URL funkcji można skonfigurować podczas tworzenia, a także po utworzeniu funkcji Lambda. W tym celu po prostu przejdź do ustawień zaawansowanych w sekcji konfiguracyjnej i sprawdź Włącz URL funkcji skrzynka.

W przypadku, gdy nie dołączyłeś adresu URL funkcji podczas tworzenia funkcji Lambda, możesz to zrobić później. W tym celu musisz przejść do karty konfiguracji, wybierz URL funkcji i kliknij Utwórz URL funkcji.

W ten sposób URL funkcji jest tworzony i używany do wywoływania funkcji Lambda.

Wywołać funkcje Lambda za pomocą usług AWS

Wiele usług AWS można skonfigurować jako wyzwalacz do wywołania funkcji Lambda. Wystarczy skonfigurować usługi AWS jako wyzwalacz, aby wywołać funkcję Lambda. Tutaj przechodzimy przez wszystkie te usługi z wyjaśnieniem, jak je używać jako wyzwalaczy Lambda.

Brama API

Jest to usługa AWS, która jest szeroko używana do tworzenia i zarządzania interfejsami API w modelu aplikacji. API dają bardzo elastyczny sposób generowania żądań lub połączeń z jednego pakietu oprogramowania do innego pakietu, którego nie możemy bezpośrednio ujawnić i po prostu chce się trzymać za kulisami.

Aby dodać dowolną usługę jako spust do swojej 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 swojej funkcji Lambda. W tej sekcji wybieramy bramę API jako wyzwalacz funkcji Lambda.

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

Istnieją dwa rodzaje interfejsów API obsługiwanych przez bramę API i można je wykorzystać do wywołania funkcji Lambda.

API HTTP: Służą one do generowania punktów końcowych HTTP, które są kierowane do twoich funkcji Lambda. API HTTP zapewniają mniej funkcjonalności i są mniej kosztowne w użyciu.

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

S3 wiadro

Istnieje wiele przypadków użycia, w których zobaczysz, że wiadra S3 działają jako wyzwalacz, aby wywołać funkcję Lambda. Możesz skonfigurować wiadro S3, aby uruchomić funkcję Lambda dla określonego zdarzenia S3.

Na przykład chcesz zebrać metadane dowolnego pliku, gdy jest on przesłany do wiadra. W tym celu opracowujesz kod i wdrażasz go na funkcji Lambda. W przypadku spustu lambda wybierz wiadro S3. Dla typu zdarzenia wybierz umieść obiekt. Tak, że za każdym razem, gdy dodaje się nowy plik do wiadra, funkcja Lambda jest uruchamiana, a metadane obiektu są gromadzone i przechowywane w miejscu docelowym po określaniu.

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

Balancer obciążenia

Załóżmy, że Twoja aplikacja została zaprojektowana do działania w funkcjach Lambda, ponieważ funkcja Lambda jest najbardziej opłacalnym rozwiązaniem dla prostej aplikacji opartej na chmurze. Teraz, aby ujawnić aplikację użytkownikom końcowym, możesz podłączyć przed sobą równoważenie ładunków. W tej sekcji wybierz wyważający obciążenie, który działa jako wyzwalacz, aby wywołać funkcję Lambda. Pamiętaj, że możesz skonfigurować jedynie równoważenie obciążenia aplikacji dla tego zadania, ponieważ inni równoważenie obciążenia nie są obsługiwane przez funkcje Lambda.

Aby dodać równoważenie ładunku aplikacji do funkcji Lambda, najpierw musisz utworzyć grupę docelową, a funkcja Lambda jest dodawana do tej grupy docelowej. Teraz nowo utworzona grupa docelowa może zostać dodana do słuchaczy balansu ładunkowego aplikacji.

Cloudfront

Amazon Cloudfront to w rzeczywistości CDN (sieć dostarczania treści) i służy do buforowania danych aplikacji w lokalizacjach Edge, które są znacznie bliżej użytkowników końcowych w porównaniu z rzeczywistymi serwerami aplikacji. Korzystając z Cloudfront, możesz naprawdę poprawić czas odpowiedzi na obsługę treści statycznej użytkownikom końcowym na całym świecie.

Funkcje Lambda można uruchomić za pomocą usługi CloudFront. W tym celu musisz wdrożyć swoją funkcję Lambda w lokalizacjach krawędzi na całym świecie, znana jako Lambda@Edge.

Możesz ustawić CloudFront jako wyzwalacz, aby wysłać żądania do lambda@egde za pośrednictwem Cloudfront, aby poprawić czas odpowiedzi. Ponieważ lambda@krawędź jest wdrażana we wszystkich lokalizacjach krawędzi na całym świecie, użytkownicy końcowi napotykają minimalny czas reakcji, uzyskując dostęp do najbliższej lokalizacji Lambda.

Aby to skonfigurować, po prostu przejdź do Dodaj spust i wybierz usługę CloudFront. Tam zobaczysz Wdrożenie do Lambda@Edge opcja.

Teraz wystarczy ukończyć kroki konfiguracji i rozpocząć.

Dzienniki CloudWatch

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

Dzienniki CloudWatch, jak określa nazwa, to usługa rejestrowania, której można użyć do przechowywania wszystkich rodzajów dzienników. Możesz utworzyć różne grupy dzienników dla różnych usług, aby dzienniki oddzielały. Te dzienniki można użyć do wyzwolenia funkcji Lambda w oparciu o zdarzenia, które otrzymują, niezależnie od usługi lub procedury, która tworzy te zdarzenia.

Możesz skonfigurować spust z konsoli funkcyjnej Lambda lub bezpośrednio z dzienników CloudWatch. Aby to zrobić z konsoli CloudWatch, po prostu przejdź do usługi CloudWatch i otwórz grupy dzienników. Tutaj musisz utworzyć filtr subskrypcji Lambda.

Następnie wybierz funkcję Lambda, którą chcesz, i możesz iść.

Teraz, gdy CloudWatch dostaje ten strumień dziennika, działa jako wyzwalacz, aby wywołać funkcję Lambda.

Eventbridge

Amazon Eventbridge (wcześniej znany jako CloudWatch Events) to usługa AWS, która pozwala utworzyć reguły zdarzeń, aby uruchomić określoną usługę AWS w określonym wydarzeniu, które dzieje się na koncie AWS.

Istnieje wiele różnych zasad, które można ustawić dla usług AWS (takie jak zdarzenia tworzenia instancji EC2 lub zdarzenia bazy danych RDS), a także usługi stron trzecich (takie jak Github Push Event). Reguły te można dalej powiązać z innymi usługami, takimi jak funkcje Lambda w taki sposób, że za każdym razem, gdy zasada ta jest zadowolona, ​​wywołuje funkcję Lambda.

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

Istniejąca zasada jest tutaj dodawana jako spust, ale w tym momencie możesz również stworzyć regułę.

Dynamodb

Być może wiedziałeś, ż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 baza danych bez serwera i możesz bezpośrednio zacząć tworzyć w niej tabele. Te tabele DynamoDB można skonfigurować tak, aby działały jako wyzwalacze, aby wywołać funkcje Lambda.

Dane z dynamoDB można załadować do lambda jako wejście w postaci partii i są przetwarzane za pomocą kodu wdrażanego w Lambda.

Kinesis

Jeśli chcesz zbierać i przeanalizować dane w czasie rzeczywistym w wysokim tempie, możesz skorzystać z AWS kinesis. Załóżmy, że chcesz przetworzyć dane zebrane przez strumienie danych Kinesis za pomocą funkcji Lambda. Po prostu musisz uruchomić swoją funkcję Lambda za każdym razem, gdy dane są rejestrowane przez kinesis.

Właśnie skończyłeś konfigurowanie strumienia danych Kinesis, aby wywołać funkcję Lambda.

Sns

Jest to po prostu usługa powiadomienia, która jest powszechnie używana do wysyłania powiadomień z jednej usługi AWS do drugiej, ponieważ czasami nie ma sposobu na skonfigurowanie powiadomień bezpośrednio z jednej usługi na drugą. Funkcje Lambda można uruchomić za pomocą tej usługi.

Najpierw utwórz temat SNS, a następnie użyj go, aby wywołać funkcję Lambda.

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

Wniosek

Amazon Lambda to naprawdę przełom w architekturze chmur. Rozwój i wdrażanie aplikacji nigdy nie były tak łatwe i proste przed nim. Pozwala po prostu utworzyć kod w dowolnej wspólnej frameworku i przesyłać kod do Lambda i zostaje wykonany. Istnieje długa lista innych usług, które można połączyć z AWS Lambda i działać jako wyzwalacz, aby wywołać funkcję Lambda tylko wtedy, gdy jest to wymagane. Nie ma ciągłego kosztów uruchamiania serwera, ale zostaniesz obciążony w zależności od liczby wyzwalaczy i czasu wykonywania kodu.