Jak stworzyć funkcję Lambda z Python Runtime

Jak stworzyć funkcję Lambda z Python Runtime
„Lambda to usługa obliczeniowa bez serwera świadczona przez AWS do uruchomienia kodu bez zarządzania skalowaniem i wysoką dostępnością serwerów. Przez termin bez serwera rozumiemy, że nie musisz mieć serwera i zarządzać nim, aby uruchomić aplikację. Lambda wykonuje zadania w Twoim imieniu i samo w sobie zarządza. Ma więc unikalną funkcję automatycznego skalowania i zarządzania źródłami i usługami zgodnie z wymaganiami. Pamiętaj, że w czasie rzeczywistym nie można uruchomić aplikacji bez serwera i jej zarządzania, więc to AWS przypisuje serwer i sama w sobie zarządza wszystkimi tymi usługami, co nie jest twoim bólem głowy."

Poniżej znajdują się niektóre z głównych zadań, które AWS podejmuje i wykonuje w naszym imieniu, gdy wdrażasz swoją aplikację na Lambda.

  1. Serwery i konserwacja systemu operacyjnego
  2. Zarządzanie pamięcią, procesor, sieć i inne zasoby
  3. Automatyczne skalowanie
  4. Duża dostępność
  5. Monitorowanie zdrowia floty
  6. Stosowanie metod bezpieczeństwa
  7. Śledzenie funkcji Lambda (Watch Cloud)

Funkcja Lambda obsługuje kilka języków, w tym Java, Go, PowerShell, węzeł.JS, C#, Python i Ruby. Aby użyć dowolnego innego języka programowania, zapewnia również usługę interfejsu API runtime. W tym samouczku wyjaśnimy, w jaki sposób możemy stworzyć funkcję Lambda z Python Runtime od zera.

Oddziaływanie Lambda

Po krótkim wprowadzeniu usługi Lambda, pierwszą rzeczą, która przychodzi nam na myśl, jest to, że jeśli jest to komputer bez serwera, to jak AWS naładowałby tę usługę? W przeciwieństwie do fakturowania serwerów EC2, w których AWS pobiera opłaty za działanie serwera, niezależnie od tego, czy nasz kod jest uruchomiony, czy nie, opłaty AWS dla Lambda tylko wtedy, gdy kod się uruchomi. Tak więc usługa Lambda jest naliczana tylko wtedy, gdy nasz kod jest w górę, a nie od momentu utworzenia naszej funkcji Lambda. Tak więc czas trwania funkcji Lambda jest obliczany dla czasu wykonywania kodu, który jest zaokrąglony do najbliższych 1 ms*.

Tworzenie funkcji Lambda z Python Runtime

Aby utworzyć funkcję Lambda z Python Runtime, utworzymy funkcję, a następnie skonfigurujemy ją, aby użyć czasu wykonywania Python. W tym samouczku omówiona zostanie cała procedura tworzenia i konfiguracji funkcji Lambda.

Po pierwsze, zaloguj się do konsoli zarządzania AWS, a następnie szukaj lambda w pasku wyszukiwania i wybierz to

Na lewym pasku bocznym kliknij Funkcje przycisk, aby uzyskać wszystkie funkcje w konsoli Lambda.

Po prawej stronie ekranu kliknij Utwórz funkcję przycisk, aby utworzyć funkcję.

Po wybraniu funkcji Utwórz będziemy skierowani na stronę konfiguracji funkcji Lambda. Tam znajdziemy cztery sposoby tworzenia funkcji Lambda. Na razie pójdziemy po „Autor od podstaw" opcja.

W podstawowym menu informacyjnym ustawimy Nazwa funkcji naszego wyboru dla naszej funkcji.

W następnym kroku wybierzemy język, którego chcemy użyć do napisania naszej funkcji. W tym samouczku wybierzemy Python 3.9 Jako nasz czas wykonawczy.

Następnie pojawią się dwie następujące opcje dla architektury.

  • X86_64
  • Arm64

W przypadku tego demo wybierzemy x86_64 jako architektura, której chcemy użyć dla kodu funkcji.

Domyślnie AWS tworzy rolę IAM, która ma pozwolenie na rzucanie dzienników do CloudWatch. Możemy stworzyć własną rolę z zasadami, które chcemy wykorzystać w naszej funkcji Lambda zgodnie z naszymi wymaganiami. W tym samouczku, w „Zmień domyślną rolę wykonania„Menu, pójdziemy na„Stwórz nową rolę z podstawowymi uprawnieniami Lambda."

Następnie, w prawym dolnym rogu, klikniemy Utwórz funkcję Aby utworzyć funkcję.

Pojawi się nowy ekran z komunikatem sukcesu i przeglądem funkcji jak poniżej. Na tej stronie możemy dodać wyzwalacze i miejsca docelowe dla naszej funkcji. Poza tym można również zobaczyć inne informacje o funkcji, które obejmują opis, ostatnią informacje o modyfikacji, funkcję ARN i URL do funkcji.

Testowanie funkcji Lambda

W menu źródłowym kod możemy zobaczyć nasz kod Hello World Python, jak pokazano na poniższym zdjęciu.

Tutaj możemy przetestować nasz kod, po prostu klikając Test przycisk.

To skłoni Skonfiguruj ekran zdarzenia testu, a tutaj możesz skonfigurować zdarzenie testowe, nazywając je, wybierając dostępność zdarzenia testowego jako prywatną lub możliwą do udostępniania, a dla domyślnego szablonu Hello-World, który wybraliśmy.

Następnie kliknij ratować przycisk, aby zapisać zdarzenie.

Zabiera nas z powrotem do głównego menu funkcji wyświetlającej komunikat sukcesu u góry. Tutaj ponownie klikniemy Test przycisk, a nasz kod zostanie wykonany.

Jak widzieliśmy wyniki wykonania naszego kodu w nowej karcie. Teraz możemy zastąpić i edytować nasz kod i przetestować go w ten sam sposób.

Czytanie dzienników funkcji Lambda

Jako zezwolenie na naszą funkcję Lambda w celu przesyłania dzienników do CloudWatch. Tak więc dzienniki będą przesyłane do Watch Watch za każdym razem, gdy wykonamy nasz kod.

W lewym panelu bocznym CloudWatch klikniemy dzienniki. Tutaj będziemy mogli zobaczyć dwie opcje w dziennikach.

  • Grupy dziennika
  • Spostrzeżenia dziennika

W grupach dziennika będziemy mogli zobaczyć dzienniki dla funkcji ze sobą /AWS/Lambda/Hello-World-Funkcja.

W spostrzeżeniach dziennika jesteśmy w stanie wyszukiwać i analizować dane naszych dzienników. Tutaj możemy wykonać zapytania, aby lepiej wykonywać naszą pracę związaną z dziennikami.

Tutaj w logarach, jeśli wybieramy naszą grupę dziennika i kliknij Uruchom zapytanie, Uzyskamy nasze pożądane wyniki.

I otrzymamy nasze wyniki @znak czasu I @wiadomość następująco

W ten sam sposób możemy stworzyć do 1000 funkcji Lambda. Możemy napisać nasz kod Python, aby spełnić nasze wymagania i wykonać go. Ponadto wiele zadań można również zautomatyzować za pomocą funkcji Lambda. Wspomnialiśmy poniżej kilka podstawowych zadań, które zarządzają funkcja Lambda za pośrednictwem kodu Pythona za pomocą Boto3, czyli Python SDK dla AWS.

  • Aby otrzymać ostrzeżenia o warunkach instancji EC2
  • Aby zaplanować początek i zatrzymanie instancji EC2
  • Aby umieścić element w tabeli AWS DynamoDB

Wniosek

Funkcja Lambda to usługa obliczeniowa bez serwera świadczona przez AWS, w której AWS wykonuje wszystkie zadania w naszym imieniu, od alokacji serwera do konserwacji, zarządzania, sieci i bezpieczeństwa tego serwera dla naszego kodu. Opłaty za AWS za lambda tylko wtedy, gdy funkcja Lambda jest uruchamiana, a może być obciążona nawet w milisekundach. Stąd ta usługa funkcji Lambda zrewolucjonizowała pole przetwarzania w chmurze, dzięki czemu wiele zadań w chmurze jest łatwy w obsłudze.