Rozszerzenia AWS Lambda są teraz ogólnie dostępne — zacznij już dziś od swoich ulubionych narzędzi operacyjnych

21 czerwca 2021

W październiku 2020 r. AWS ogłosił podgląd rozszerzeń AWS Lambda, których można użyć do łatwej integracji funkcji Lambda z ulubionymi narzędziami do monitorowania, obserwowalności, bezpieczeństwa i zarządzania.

Pod koniec Maja 2021 AWS ogłosił ogólną dostępność rozszerzeń AWS Lambda, które zawierają nowe ulepszenia wydajności i rozszerzony zestaw partnerów. W ramach wydania GA włączono funkcje wysyłania odpowiedzi, gdy tylko kod funkcji jest kompletny, bez czekania na zakończenie dołączonych rozszerzeń. Dzięki temu rozszerzenia mogą wykonywać działania, takie jak wysyłanie danych telemetrycznych do preferowanego miejsca docelowego po zwróceniu odpowiedzi funkcji. Wprowadzono również rozszerzenia od nowych partnerów: Imperva, Instana, Sentry, Site24x7 i AWS Distro dla OpenTelemetry.

Rozszerzeń Lambda można używać w przypadku use-case’ów, takich jak przechwytywanie informacji diagnostycznych przed, w trakcie i po wywołaniu funkcji; automatyczne instrumentowanie kodu bez konieczności wprowadzania zmian w kodzie; pobieranie ustawień konfiguracyjnych lub sekretów przed wywołaniem funkcji; wykrywanie i ostrzeganie o aktywności funkcji przez agentów bezpieczeństwa; oraz wysyłanie danych telemetrycznych do niestandardowych miejsc docelowych, takich jak Amazon Simple Storage Service (Amazon S3), Amazon KinesisAmazon Elasticsearch Service bezpośrednio i asynchronicznie z funkcji Lambda.

Klientów przyciąga wizja Serverless. Zmniejszona odpowiedzialność operacyjna pozwala im skoncentrować się na swoich problemach biznesowych. Aby pomóc klientom monitorować, obserwować, zabezpieczać i zarządzać ich funkcjami, AWS Lambda zapewnia natywną integrację logów i metryk za pośrednictwem Amazon CloudWatch, śledzenie za pomocą AWS X-Ray, śledzenie zmian konfiguracji za pomocą AWS Config i rejestrowanie wywołań API za pośrednictwem AWS CloudTrail. Partnerzy AWS Lambda dostarczają narzędzia do zarządzania aplikacjami, integracji API, wdrażania, monitorowania i bezpieczeństwa.

Rozszerzenia AWS Lambda zapewniają prosty sposób na rozszerzenie środowiska wykonawczego Lambda, w którym wykonywany jest kod funkcji. Klienci, partnerzy i społeczność open source AWS mogą korzystać z nowego interfejsu Lambda Extensions API do budowania własnych rozszerzeń, które są procesami towarzyszącymi, a które zwiększają możliwości funkcji Lambda. Aby dowiedzieć się, jak tworzyć własne rozszerzenia, zapoznaj się z wpisem na blogu Building Extensions for AWS Lambda – In preview. Post zawiera również informacje o zmianach w cyklu życia Lambdy.

Jak działa AWS Lambda Extensions
Rozszerzenia AWS Lambda zostały zaprojektowane tak, aby były najłatwiejszym sposobem podłączenia narzędzi, których używasz dzisiaj, bez skomplikowanej instalacji lub zarządzania konfiguracją. Możesz dodawać narzędzia do swoich funkcji za pomocą warstw Lambda lub dołączyć je do obrazu dla funkcji wdrożonych jako obrazy kontenerów.

Rozszerzenia_AWS_Lambda

Rozszerzenia lambda używają interfejsu Extensions API do rejestrowania zdarzeń cyklu życia funkcji i środowiska wykonawczego. W odpowiedzi na te zdarzenia rozszerzenia mogą uruchamiać nowe procesy lub uruchamiać logikę. Rozszerzenia Lambda mogą również używać Runtime Logs API do subskrybowania strumienia tych samych logów, które usługa Lambda wysyła do Amazon CloudWatch bezpośrednio ze środowiska wykonawczego Lambda. Lambda przesyła strumieniowo logi do rozszerzenia, które następnie może przetwarzać, filtrować i wysyłać logi do dowolnego preferowanego miejsca docelowego.

Większość klientów będzie korzystać z rozszerzeń Lambda bez konieczności poznania możliwości interfejsu Extensions API. Możesz po prostu wykorzystać możliwości rozszerzenia, konfigurując opcje w swoich funkcjach Lambda.

Jak korzystać z Lambda Extensions

Możesz instalować rozszerzenia i zarządzać nimi za pomocą konsoli Lambda, interfejsu AWS Command Line Interface (CLI) lub usług i narzędzi infrastruktury jako kodu (IaC), takich jak AWS CloudFormationAWS Serverless Application Model i Terraform.

Aby użyć rozszerzeń Lambda do integracji istniejących narzędzi z funkcjami Lambda, wybierz swoją funkcję Lambda i na karcie Configuration wybierz Monitoring and Operations tools.

Rozszerzenia_AWS_Lambda

Na stronie Extensions możesz znaleźć dostępne rozszerzenia od partnerów AWS Lambda. Wybierz extension, aby wyświetlić jego instrukcje instalacji.

Rozszerzenia_AWS_Lambda

Partnerzy rozszerzeń AWS Lambda

Rozszerzenia Lambda integrują się z tymi partnerami AWS Lambda, którzy dostarczyli następujące informacje, aby wprowadzić swoje rozszerzenia. (Artykuł jest wciąż odświeżany).

  • AppDynamics zapewnia śledzenie transakcji end-to-end dla AWS Lambda. Dzięki rozszerzeniu AppDynamics programiści nie muszą już uwzględniać śledzenia AppDynamics jako zależności w kodzie funkcji, dzięki czemu śledzenie transakcji w architekturach hybrydowych jest jeszcze prostsze.
  • Coralogix to platforma do analizy logów i bezpieczeństwa w chmurze, która umożliwia tysiącom firm poprawę bezpieczeństwa i przyspieszenie dostarczania oprogramowania, umożliwiając uzyskanie szczegółowych informacji. Coralogix może teraz odczytywać logi i metryki funkcji Lambda bezpośrednio, bez korzystania z CloudWatch lub Amazon S3, zmniejszając opóźnienia i koszt obserwowalności.
  • Rozszerzenie Datadog zapewnia kompleksowy wgląd w czasie rzeczywistym do aplikacji serverless. W połączeniu z integracją Datadog z AWS, otrzymujesz metryki, ślady i logi, które pomogą Ci monitorować, wykrywać i rozwiązywać problemy w dowolnej skali. Rozszerzenie Datadog sprawia, że pobieranie danych telemetrycznych z obciążeń serverless jest łatwiejsze niż kiedykolwiek.
  • Rozszerzenie Dynatrace jeszcze bardziej ułatwia wprowadzanie metryk i śladów AWS Lambda na platformę Dynatrace w celu inteligentnej obserwacji i automatycznego wykrywania przyczyn źródłowych. Uzyskaj wszechstronną, obserwowalność typu end-to-end za jednym naciśnięciem przełącznika i bez zmian w kodzie.
  • Epsagon pomaga monitorować, rozwiązywać problemy i obniżać koszty funkcji Lambda. Rozszerzenie Epsagon zmniejsza obciążenie związane z wysyłaniem śladów do usługi Epsagon, przy minimalnym wpływie na wydajność Twojej funkcji.
  • HashiCorp Vault umożliwia zabezpieczanie, przechowywanie i ścisłą kontrolę dostępu do secret’ów i poufnych danych aplikacji. Dzięki rozszerzeniu Vault możesz teraz uwierzytelniać i bezpiecznie pobierać dynamiczne sekrety przed wywołaniem funkcji Lambda.
  • Honeycombto potężne narzędzie do obserwacji, które pomaga debugować cały stos aplikacji produkcyjnych. Rozszerzenie Honeycomb zmniejsza obciążenie, opóźnienia i koszt wysyłania zdarzeń do usługi Honeycomb, jednocześnie zwiększając niezawodność.
  • Instana Enterprise Observability Platform pozyskuje metryki wydajności, śledzi żądania i profiluje procesy, aby umożliwić działanie obserwowalności w przedsiębiorstwie. Rozszerzenie Instana Lambda oferuje śledzenie funkcji Lambda bez modyfikacji, śledzenie funkcji Lambda o niskim opóźnieniu wspierane przez platformę Enterprise Observability Platform w czasie rzeczywistym.
  • Imperva Serverless Protection chroni organizacje przed lukami tworzonymi przez źle skonfigurowane aplikacje i zagrożenia bezpieczeństwa na poziomie kodu w środowiskach obliczeniowych typu serverless. Rozszerzenie Imperva umożliwia klientom łatwe osadzenie dodatkowych zabezpieczeń w procesach DevOps dla aplikacji serverless bez konieczności wprowadzania zmian w kodzie, co prowadzi do skrócenia czasu wprowadzania produktów na rynek.
  • Lumigo zapewnia platformę monitorowania i obserwowania dla aplikacji typu serverless i mikrousług. Rozszerzenie Lumigo pozwala nowemu Lumigo Lambda Profiler zobaczyć podział zasobów funkcji, w tym metryki procesora, pamięci i sieci. Użyj rozszerzenia, aby uzyskać przydatne informacje w celu skrócenia czasu i kosztów środowiska uruchomieniowego Lambda, naprawiania wąskich gardeł (bottleneck) i zwiększania wydajności.
  • Check Point CloudGuard zapewnia pełne bezpieczeństwo cyklu życia aplikacji serverless. Rozszerzenie CloudGuard umożliwia agregację danych funkcji Self Protection jako rozszerzenie out-of-process, zapewniając wykrywanie i ostrzeganie o atakach w warstwie aplikacji.
  • New Relic umożliwia efektywne monitorowanie, rozwiązywanie problemów i optymalizację funkcji Lambda. Rozszerzenie New Relic umożliwia wysyłanie logów platformy usługowej Lambda bezpośrednio do ujednoliconej platformy obserwowalności New Relic, co pozwala na szybką wizualizację danych przy minimalnych opóźnieniach i kosztach.
  • Thundra zapewnia platformę debugowania aplikacji, obserwowalności i bezpieczeństwa dla obciążeń serverless, kontenerowych i maszyn wirtualnych (VM). Rozszerzenie Thundra dodaje asynchroniczne raportowanie telemetryczne do agentów Thundra, eliminując opóźnienia w sieci.
  • Splunk oferuje rozwiązanie do monitorowania w chmurze klasy enterprise, zapewniające pełny wgląd w czasie rzeczywistym na dużą skalę. Rozszerzenie Splunk zapewnia uproszczony, niezależny od środowiska uruchomieniowego interfejs do zbierania danych o obserwowalności w wysokiej rozdzielczości przy minimalnym nakładzie pracy. Monitoruj, zarządzaj i optymalizuj wydajność oraz koszty aplikacji serverless dzięki rozwiązaniom Splunk Observability.
  • Rozszerzenie Sentry umożliwia developerom monitorowanie stanu kodu. Od śledzenia błędów po monitorowanie wydajności, developerzy mogą łatwiej dostrzegać problemy, szybciej je rozwiązywać i stale otrzymywać informacje o kondycji swoich aplikacji, a wszystko to bez wprowadzania zmian w kodzie.
  • Site24x7zapewnia rozwiązanie do monitorowania wydajności dla DevOps i operacji IT. Rozszerzenie Site24x7 umożliwia obserwowanie w czasie rzeczywistym funkcji Lambda. Umożliwia monitorowanie krytycznych metryk Lambda i logów wykonania funkcji oraz optymalizację czasu wykonania i wydajności.
  • Rozszerzenie Sumo Logic umożliwia natychmiastowy wgląd w stan i wydajność aplikacji, używających AWS Lambda. Dzięki temu rozszerzeniu i platformie ciągłej analizy Sumo Logic możesz teraz upewnić się, że wszystkie funkcje Lambda działają zgodnie z oczekiwaniami, analizując logi funkcji, platformy i rozszerzeń, aby szybko identyfikować i usuwać błędy i wyjątki.

Oto rozszerzenia Lambda z usług AWS:

  • AWS AppConfigpomaga zarządzać, przechowywać i bezpiecznie wdrażać konfiguracje aplikacji na hostach w czasie pracy. Rozszerzenie AWS AppConfig płynnie integruje Lambda i AWS AppConfig. Funkcje Lambda mają łatwy i szybki dostęp do zewnętrznych ustawień konfiguracyjnych. Deweloperzy mogą dynamicznie zmieniać konfigurację swojej funkcji Lambda, korzystając z niezawodnych funkcji walidacji.
  • Amazon CodeGuru Profiler pomaga programistom poprawić wydajność aplikacji i obniżyć koszty, wskazując najdroższe linie kodu aplikacji. Dodatkowo usługa ta zawiera zalecenia dotyczące ulepszania kodu w celu zaoszczędzenia pieniędzy. Integracja Lambda eliminuje potrzebę zmiany kodu lub ponownego wdrażania pakietów.
  • Amazon CloudWatch Lambda Insights umożliwia efektywne monitorowanie, rozwiązywanie problemów i optymalizację funkcji Lambda. Rozszerzenie Lambda Insights upraszcza zbieranie, wizualizację i badanie szczegółowych metryk wydajności obliczeniowej, błędów i logów. Możesz łatwiej wyodrębnić i skorelować problemy z wydajnością, aby zoptymalizować swoje środowiska Lambda.
  • AWS Distro for OpenTelemetry to bezpieczna, obsługiwana przez AWS dystrybucja projektu OpenTelemetry. Rozszerzenie Lambda uruchamia kolektor OpenTelemetry i umożliwia funkcjom wysyłanie danych śledzenia do usług monitorowania AWS, takich jak AWS X-Ray i do dowolnego miejsca docelowego, takiego jak Honeycomb i Lightstep, które obsługują protokół OpenTelemetry (OTLP) za pomocą eksportera OTLP.

Aby rozpocząć korzystanie z rozszerzeń Lambda, użyj podanych linków, aby zainstalować te rozszerzenia.

Rzeczy, które warto wiedzieć

Oto kilka rzeczy, o których należy pamiętać:

Koszta: Rozszerzenia korzystają z tego samego modelu rozliczeń co funkcje Lambda, a opłaty są naliczane za czas obliczeniowy wykorzystywany we wszystkich fazach cyklu życia Lambda. W przypadku wywołań funkcji płacisz za obsłużone żądania i czas obliczeniowy używany do uruchomienia kodu i wszystkich rozszerzeń razem w przyrostach co 1 ms. Aby dowiedzieć się więcej o rozliczeniach za rozszerzenia, odwiedź stronę z Lambda FAQ.

Wydajność: Rozszerzenia Lambda mogą mieć wpływ na wydajność funkcji, ponieważ współdzielą z funkcją zasoby, takie jak procesor, pamięć i pamięć masowa, a także dlatego, że rozszerzenia są inicjowane przed kodem funkcji. Na przykład, jeśli rozszerzenie wykonuje operacje wymagające dużej mocy obliczeniowej, może się wydłużyć czas wykonywania funkcji, ponieważ rozszerzenie i kod funkcji współdzielą te same zasoby procesora.

Ponieważ Lambda wykorzystuje proporcjonalną moc procesora na podstawie ustawienia pamięci, możesz zauważyć wydłużony czas wykonywania i inicjalizacji przy niższych ustawieniach pamięci, ponieważ więcej procesów konkuruje o te same zasoby procesora. Możesz użyć metryk CloudWatch, takich jak PostRuntimeExecutionDuration, aby zmierzyć dodatkowy czas, jaki zajmuje rozszerzenie po wykonaniu funkcji, i MaxMemoryUsed, aby zmierzyć wzrost używanej pamięci.

Dostępne już teraz

Ulepszenia wydajności ogłoszone w ramach GA dotyczą wszystkich regionów komercyjnych.

Możesz także tworzyć własne rozszerzenia. Aby dowiedzieć się, jak budować rozszerzenia, zobacz Lambda Extensions API w AWS Lambda Developer Guide.

Obejrzyj krótki film wprowadzający i obszerną playlistę na temat rozszerzeń AWS Lambda, aby uzyskać więcej informacji.

https://youtu.be/cKj01IU4WQ0

Case Studies
Referencje

Hostersi zrealizowali usługi konsultingowe z zakresu doboru odpowiedniej bazy danych w Amazon Web Services oraz pomyślnie przeprowadzili migrację bazy danych MySQL do Amazon Aurora. 

Tomasz Ślązok
CTO Landingi
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.