Wprowadzenie do Amazon API Gateway z wykorzystaniem AWS Lambda

Wprowadzenie do Amazon API Gateway z wykorzystaniem AWS Lambda

Węzeł źródłowy: 1860150

Wprowadzenie

Co to jest API?

Mówiąc najprościej, API jest komunikatorem; zrozummy to na kilku przykładach. Powiedzmy, że jesteś głodny i musisz coś ugotować w domu. Jeśli chcesz zrobić makaron, po prostu wyjmij składniki z szafki, rozpal piec i zrób to sam. Jest to program, który robi coś sam z własnych zasobów. Ale powiedzmy, że chcesz pizzę – nie masz składników, a twój domowy piekarnik nie jest zbyt odpowiedni do przygotowania ładnej chrupiącej skórki. Zamiast tego idziesz do pizzerii. Ale w przeciwieństwie do domu, nie możesz po prostu wejść do kuchni i zacząć używać ich składników do robienia pizzy. Nie chcą twoich brudnych rąk na ich rzeczach! Więc, co zrobisz? Musisz podejść do lady i złożyć zamówienie – pojawi się menu z listą, jakie pizze możesz zamówić i jakie dodatki lub inne opcje możesz wybrać. To jest interfejs API.

Application Programming Interface (API) to zestaw reguł określających sposób interakcji dwóch programów.

Interfejs API umożliwia jednemu programowi dostęp do funkcji innego programu. Na przykład, jeśli masz program, który musi pobierać dane z Internetu, może on użyć interfejsu API, aby zażądać tych danych z serwera. Serwer przekaże następnie żądane dane, a program może ich użyć w razie potrzeby.

Interfejsy API służą do umożliwienia różnym programom komunikowania się ze sobą oraz udostępniania danych i funkcji. Są ważną częścią nowoczesnego tworzenia oprogramowania, ponieważ umożliwiają współpracę różnych systemów i umożliwiają tworzenie bardziej złożonych i wydajnych aplikacji.

API HTTP

HTTP API to rodzaj interfejsu API, który wykorzystuje protokół HTTP do wysyłania i odbierania danych. Umożliwia programom wysyłanie i odbieranie danych za pomocą żądań i odpowiedzi HTTP. Te żądania i odpowiedzi mogą być w różnych formatach, takich jak zwykły tekst, JSON lub XML. Są powszechnie używane w wielu aplikacjach, w tym w aplikacjach internetowych, aplikacjach mobilnych i mikrousługach. Te interfejsy API są stosunkowo tańsze niż interfejsy API REST i mają mniej funkcjonalności niż te późniejsze.

Interfejsy API usług REST

REST API to typ interfejsu API, który jest zgodny z zestawem zasad architektury o nazwie REST (Representational State Transfer). REST to styl architektury oprogramowania, który definiuje zestaw ograniczeń dotyczących tworzenia internetowych interfejsów API.

Stanowe interfejsy API

Stanowy interfejs API to interfejs API, który przechowuje informacje o każdym żądaniu klienta i używa tych informacji do przetwarzania kolejnych żądań. Oznacza to, że interfejs API przechowuje dane dotyczące każdego żądania, takie jak parametry żądania, w sesji po stronie serwera. Dane te są następnie wykorzystywane do przetwarzania kolejnych żądań od tego samego klienta.

Bezstanowe interfejsy API

Z drugiej strony bezstanowe API nie przechowuje informacji o żądaniach klientów. Przetwarza każde żądanie niezależnie, nie przechowując żadnych danych o poprzednich żądaniach. Oznacza to, że API nie utrzymuje sesji po stronie serwera i nie wykorzystuje danych z poprzednich żądań do przetwarzania kolejnych żądań.

Kluczowe różnice między stanowymi i bezstanowymi interfejsami API

Poniżej przedstawiono kilka kluczowych różnic między stanowymi i bezstanowymi interfejsami API:

PAŃSTWOWE interfejsy API

Bezstanowe interfejsy API

1. Wymagaj sesji po stronie serwera do przechowywania danych o żądaniach klientów 1. Nie wymagaj sesji po stronie serwera do przechowywania danych o żądaniach klientów
2. Mogą one czasami działać wolniej niż bezstanowe interfejsy API, ponieważ wymagają czasu i przechowują dane. 2. Bezstanowe interfejsy API są szybsze, ponieważ nie wymagają i nie przechowują danych o żądaniach.
3. Stanowe interfejsy API nie są łatwe do skalowania  3. Łatwiejsze skalowanie, ponieważ nie muszą przechowywać danych o poprzednich żądaniach.
4. Ogólnie uważane za mniej bezpieczne niż bezstanowe interfejsy API 4. Są one ogólnie uważane za bezpieczniejsze.

Co to jest Amazon API Gateway?

Amazon API Gateway to usługa AWS, która służy do tworzenia, utrzymywania i monitorowania zarówno stanowych (websocket), jak i bezstanowych (HTTP i REST) ​​interfejsów API. Możemy użyć tych interfejsów API, aby uzyskać dostęp do:

  1. Dowolna usługa AWS
  2. Dane przechowywane w chmurze AWS (takie jak wiadro S3)
  3. Wszelkie inne usługi sieciowe.

Jeśli jesteś programistą interfejsów API, możesz łatwo udostępniać swoje interfejsy API również programistom zewnętrznym.

Istnieją głównie dwa typy użytkowników AWS API Gateway.

  1. i) Deweloperzy API, którzy tworzą i wdrażają API, aby umożliwić wymaganą funkcjonalność w API Gateway
  2. ii) Deweloperzy aplikacji, którzy są klientami dewelopera API.

Architektura Amazon API Gateway

architektura

Ta architektura ilustruje, w jaki sposób można tworzyć aplikacje bezserwerowe ze spójnym i zintegrowanym doświadczeniem programistów. Od użytkowników końcowych po centra danych, API Gateway obsługuje wszystkie związane z tym zadania, takie jak przyjmowanie i przetwarzanie tysięcy jednoczesnych połączeń, zarządzanie ruchem, autoryzacja, monitorowanie, kontrola dostępu itp.

Funkcje Amazon API Gateway

  1. Obsługuje zarówno stanowe, jak i bezstanowe interfejsy API. (Przykłady: Websocket, HTTP i REST).
  2. Potężne mechanizmy uwierzytelniania obejmują tożsamość AWS, zasady zarządzania dostępem i autoryzację Lambda.
  3. Portal dla programistów, w którym programiści interfejsów API mogą publikować swoje interfejsy API.
  4. Logowanie wykonania i dostępu do CloudWatch, w tym opcja ustawiania alarmów.
  5. Integracja z innymi usługami AWS, takimi jak AWS Lambda i kinezy AWS.
  6. Integracja z AWS WAF służy do ochrony przed exploitami internetowymi, a AWS X-Ray służy do zrozumienia i podkreślenia opóźnień wydajności.

Pierwsze kroki z Amazon API Gateway

Teraz stworzymy bezserwerowe API. W bezserwerowym API możemy skupić się na naszych aplikacjach zamiast tracić czas na zarządzanie serwerami. To działa tak:

  • API jest wywoływane przez klienta
  • API wysyła żądanie do lambdy
  • Lambda wykonuje funkcję lambda i wysyła wynik z powrotem do API
  • Po otrzymaniu wyniku z lambdy, API odpowiada klientowi

http API

Krok 1 – Utwórz funkcję lambda

Funkcja Lambda jest używana jako backend naszego API. Lambda uruchamia kod tylko wtedy, gdy jest potrzebny. Skaluje się również automatycznie od kilku żądań dziennie do tysięcy żądań na sekundę.

utwórz funkcję lambada

Tworzenie funkcji lambda:

1) Przejdź do konsoli lambda pod adresem https://console.aws.amazon.com/lambda

2) Kliknij Utwórz funkcję.

3) Wpisz „my-function” jako nazwę funkcji.

4) Wybierz Python 3.9 jako środowisko uruchomieniowe.

5) W przypadku tej funkcji nie będziemy musieli niczego zmieniać w zakładce Uprawnienia i Ustawienia zaawansowane, ponieważ domyślne uprawnienia są wystarczające do tej demonstracji.

4) Kliknij Utwórz funkcję.

KROK 2 – Tworzenie API HTTP

API Amazona

Interfejs API HTTP udostępnia punkt końcowy HTTP dla funkcji Lambda. To działa tak:

  • Klient przesyła zapytanie do interfejsu HTTP API
  • API wyzwala lambda, która następnie wykonuje funkcję lambda
  • Lambda wysyła wynik do API
  • API odpowiada klientowi otrzymaną odpowiedzią

Kroki tworzenia interfejsu API protokołu HTTP

1) Odwiedź konsolę API Gateway pod adresem https://console.aws.amazon.com/apigateway

2) Kliknij Build, aby utworzyć swój pierwszy interfejs HTTP API

3) Kliknij Dodaj integrację dla integracji

4) Wybierz Lambdę.

5) Wprowadź swoją funkcję lambda my-function.

6) Jako nazwę interfejsu API wpisz my-http-api.

7) Kliknij Dalej.

8) Przejrzyj utworzoną trasę, a następnie wybierz Dalej.

9) Przejrzyj utworzoną scenę, a następnie wybierz Dalej.

10) Kliknij Utwórz.

KROK 3 Przetestuj swoje API –

Następnie musimy przetestować nasze API, aby upewnić się, że działa. W tym celu użyjemy przeglądarki internetowej do wywołania naszego API.

API Amazona

Aby przetestować nasze API

  1. Przejdź do konsoli API Gateway pod adresem https://console.aws.amazon.com/apigateway
  2. Wybierz swój interfejs API.
  3. Zanotuj adres URL wywołania interfejsu API. (patrz obrazek powyżej)
  4. Skopiuj adres URL wywołania interfejsu API i wklej go w przeglądarce internetowej. Dołącz adres URL wywołania i nazwę swojej funkcji lambda, aby wywołać swoją funkcję Lambda. Konsola API Gateway domyślnie tworzy trasę używając nazwy Twojej funkcji Lambda „my-function”. 

    Pełny adres URL powinien wyglądać tak: https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Po załadowaniu tego adresu URL przeglądarka wysyła żądanie GET do interfejsu API

  1. Powinieneś zobaczyć tekst „Hello from Lambda!” w Twojej przeglądarce. Dlatego odpowiedź Twojego interfejsu API jest weryfikowana.

API Amazona

Wnioski

Stworzyliśmy nasze pierwsze API HTTP z wykorzystaniem Amazon API Gateway i AWS Lambda. Co więcej, możemy badać różne przypadki użycia tego samego i podobnie, możemy również stworzyć REST API, które zapewnia więcej funkcjonalności.

Podobał Ci się ten artykuł? Powiedz nam swoje przemyślenia w komentarzu poniżej. Nie zapomnij też wspomnieć, który artykuł chcesz przeczytać jako następny.

Znak czasu:

Więcej z Analityka Widhja