Budowanie funkcji Lambda

Funkcja AWS Lambda wykonuje kod po jej wywołaniu. W tym rozdziale szczegółowo omówiono wszystkie etapy cyklu życia funkcji AWS Lambda.

Kroki tworzenia funkcji Lambda

Cykl życia funkcji Lambda obejmuje cztery niezbędne kroki -

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Tworzenie kodu lambda

Kod funkcji AWS Lambda można napisać w następujących językach -

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

Możemy pisać kod dla AWS Lambda za pomocą konsoli AWS, AWS CLI, z Eclipse IDE, z Visual Studio IDE, serverless framework itp.

W poniższej tabeli przedstawiono listę języków oraz różnych narzędzi i IDE, których można użyć do napisania funkcji Lambda -

Język IDE do tworzenia kodu lambda
NodeJS

Konsola AWS Lambda

Visual Studio IDE

Jawa Eclipse IDE
Pyton Konsola AWS Lambda
DO#

Visual Studio IDE

.NET core

Iść Konsola AWS Lambda

Wdrażanie kodu lambda

Po wybraniu języka, w którym chcesz napisać funkcję Lambda, istnieją dwa sposoby wdrożenia kodu -

  • Bezpośrednio napisz kod w konsoli AWS
  • Spakuj lub jar pliki ze wszystkimi plikami i zależnościami

Pamiętaj jednak, że plik zip musi mieć odpowiednie pozwolenie.

Testowanie kodu lambda

Kod Lambda można przetestować pod kątem zdarzeń wewnątrz konsoli AWS Lambda. Możliwe jest również przetestowanie funkcji Lambda z CLI AWS i Cli bezserwerowej. Konsola AWS posiada również dane o zdarzeniach, które mogą posłużyć jako przykładowe zdarzenia podczas testowania funkcji AWS Lambda.

Monitorowanie funkcji Lambda

Monitorowanie funkcji Lambda można wykonać za pomocą AWS CloudWatch. Możemy dodać niezbędne komunikaty dziennika w wybranych przez nas językach i zobaczyć to samo w AWS CloudWatch.

Aby rozpocząć pisanie funkcji Lambda, należy zastosować wzorzec. Poniżej przedstawiono główne podstawowe koncepcje, których należy przestrzegać podczas pisania funkcji Lambda -

Treser

Handler to nazwa funkcji lambda AWS, od której rozpoczyna się wykonanie. Pojawia się w konsoli AWS, jak pokazano poniżej -

Zauważ, że tutaj zmieniliśmy domyślny program obsługi na inną nazwę i zaktualizowaliśmy to samo w Handlerze -

Zwróć uwagę, że sposób wywoływania programu obsługi różni się od języków wybranych jako środowisko wykonawcze.

Parametry przekazane do handlera

Jeśli obserwujesz funkcję handlera, przekazywane są parametry event, context i call back function jak pokazano poniżej -

Event parametr zawiera wszystkie szczegóły dotyczące używanego wyzwalacza.

ContextParametr zasadniczo zajmuje się szczegółami czasu działania funkcji Lambda do wykonania. Możemy współdziałać z funkcją Lambda za pomocącontextparam. Zawiera szczegóły, takie jak czas pozostały do ​​zakończenia funkcji przez AWS Lambda, tj. Limit czasu określony podczas tworzenia funkcji Lambda, nazwę funkcji Lambda, nazwę grupy Cloudwatch, szczegóły arn itp.

Przykład

Rozumiemy szczegóły uzyskane z obiektu kontekstu AWS Lambda na przykładzie -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Kiedy wykonujesz funkcję Lambda pokazaną powyżej, możesz zobaczyć następujące dane wyjściowe -

Wynik

Plik context szczegóły podano w następujący sposób -

{
   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}

Zauważ, że ma szczegóły, takie jak functionName, memorylimit, requestId itp.

Logowanie

Dzienniki dodane wewnątrz funkcji Lambda są wyświetlane w AWS CloudWatch, gdy funkcja AWS jest wykonywana. Składnia dzienników będzie się różnić w zależności od wybranego języka. Na przykład wnodejs, to jest console.log.

Oto dane wyjściowe, które możesz zobaczyć w AWSCloudWatch -

Obsługa błędów

Funkcja AWS Lambda udostępnia funkcję zwrotną, która służy do powiadamiania funkcji Lambda o wystąpieniu błędu lub powodzeniu. Zauważ, że tutaj użyliśmy nodejs jako środowiska wykonawczego. Obsługa błędów będzie się różnić w zależności od wybranego języka.

Aby lepiej zrozumieć, spójrz na podany tutaj przykład -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Wynik

Podczas testowania kodu Lambda można znaleźć dane wyjściowe, jak pokazano poniżej -

Szczegóły dziennika w następujący sposób -