Einführung in Amazon API Gateway mit AWS Lambda

Einführung in Amazon API Gateway mit AWS Lambda

Quellknoten: 1860150

Einleitung

Was ist eine API?

Einfach ausgedrückt ist die API ein Messenger; Lassen Sie uns dies anhand einiger Beispiele verstehen. Angenommen, Sie haben Hunger und müssen zu Hause etwas kochen. Wenn Sie Nudeln machen möchten, nehmen Sie einfach die Zutaten aus dem Schrank, feuern den Herd an und machen es selbst. Dies ist ein Programm, das mit seinen eigenen Ressourcen etwas Eigenes macht. Aber sagen Sie, Sie wollen Pizza – Sie haben nicht die Zutaten, und Ihr Backofen zu Hause ist nicht wirklich geeignet, um eine schöne knusprige Kruste zu machen. Also gehst du stattdessen in eine Pizzeria. Aber anders als zu Hause können Sie nicht einfach in die Küche gehen und anfangen, ihre Zutaten zu verwenden, um eine Pizza zu machen. Sie wollen deine schmuddeligen Hände nicht überall auf ihren Sachen! Also, was wirst du tun? Sie müssen zur Theke gehen und eine Bestellung aufgeben – es wird ein Menü geben, das auflistet, welche Pizzen Sie bestellen können und welche Beläge oder andere Optionen Sie auswählen können. Dies ist eine API.

Eine Anwendungsprogrammierschnittstelle (API) ist eine Reihe von Regeln, die festlegen, wie zwei Softwareprogramme interagieren sollen.

Eine API ermöglicht es einem Softwareprogramm, auf die Funktionalität eines anderen Softwareprogramms zuzugreifen. Wenn Sie beispielsweise ein Softwareprogramm haben, das Daten aus dem Internet abrufen muss, kann es eine API verwenden, um diese Daten von einem Server anzufordern. Der Server antwortet dann mit den angeforderten Daten, und das Softwareprogramm kann sie nach Bedarf verwenden.

APIs werden verwendet, damit verschiedene Softwareprogramme miteinander kommunizieren und Daten und Funktionen gemeinsam nutzen können. Sie sind ein wichtiger Bestandteil der modernen Softwareentwicklung, da sie die Zusammenarbeit verschiedener Systeme ermöglichen und die Erstellung komplexerer und leistungsfähigerer Softwareanwendungen ermöglichen.

HTTP-APIs

Die HTTP-API ist ein API-Typ, der das HTTP-Protokoll zum Senden und Empfangen von Daten verwendet. Es ermöglicht Softwareprogrammen das Senden und Empfangen von Daten mithilfe von HTTP-Anforderungen und -Antworten. Diese Anfragen und Antworten können in verschiedenen Formaten vorliegen, z. B. als einfacher Text, JSON oder XML. Sie werden häufig in einer Vielzahl von Anwendungen verwendet, darunter Webanwendungen, mobile Apps und Microservices. Diese APIs sind relativ billiger als REST-APIs und haben weniger Funktionen als letztere.

REST-APIs

Die REST-API ist eine Art von API, die einer Reihe von Architekturprinzipien folgt, die als REST (Representational State Transfer) bezeichnet werden. REST ist ein Softwarearchitekturstil, der eine Reihe von Einschränkungen für die Erstellung von Web-APIs definiert.

Zustandsbehaftete APIs

Eine zustandsbehaftete API ist eine API, die Informationen zu jeder Clientanforderung verwaltet und diese Informationen verwendet, um nachfolgende Anforderungen zu verarbeiten. Das bedeutet, dass die API Daten zu jeder Anfrage, wie z. B. die Anfrageparameter, in einer serverseitigen Sitzung speichert. Diese Daten werden dann verwendet, um nachfolgende Anfragen desselben Clients zu verarbeiten.

Zustandslose APIs

Eine zustandslose API hingegen verwaltet keine Informationen über Clientanforderungen. Es verarbeitet jede Anfrage selbstständig, ohne Daten über frühere Anfragen zu speichern. Dies bedeutet, dass die API keine serverseitige Sitzung aufrechterhält und keine Daten aus früheren Anforderungen verwendet, um nachfolgende Anforderungen zu verarbeiten.

Hauptunterschiede zwischen zustandsbehafteten und zustandslosen APIs

Im Folgenden sind einige Hauptunterschiede zwischen zustandsbehafteten und zustandslosen APIs aufgeführt:

STATEFUL-APIs

ZUSTANDSLOSE APIs

1. Fordern Sie eine serverseitige Sitzung an, um Daten über Clientanforderungen zu speichern 1. Benötigen Sie keine serverseitige Sitzung, um Daten über Clientanforderungen zu speichern
2. Diese können manchmal langsamer sein als zustandslose APIs, weil sie Daten benötigen und speichern, was Zeit braucht. 2. Zustandslose APIs sind schneller, da diese keine Daten über Anforderungen benötigen und speichern.
3. Stateful APIs sind nicht einfach zu skalieren  3. Einfacher zu skalieren, da sie keine Daten über frühere Anfragen pflegen müssen.
4. Wird im Allgemeinen als weniger sicher als zustandslose APIs angesehen 4. Diese gelten im Allgemeinen als sicherer.

Was ist Amazon API Gateway?

Amazon API Gateway ist ein AWS-Service, der verwendet wird, um sowohl zustandsbehaftete (Websocket) als auch zustandslose (HTTP und REST) ​​APIs zu erstellen, zu warten und zu überwachen. Wir können diese APIs für den Zugriff verwenden:

  1. Jeder AWS-Service
  2. Die in der AWS-Cloud gespeicherten Daten (z. B. ein S3-Bucket)
  3. Alle anderen Webdienste.

Wenn Sie ein API-Entwickler sind, können Sie Ihre APIs auch problemlos für Drittanbieter-Entwickler bereitstellen.

Es gibt hauptsächlich zwei Arten von Benutzern von AWS API Gateway.

  1. i) API-Entwickler, die eine API erstellen und bereitstellen, um die erforderliche Funktionalität in API Gateway zu aktivieren
  2. ii) App-Entwickler, die Kunden des API-Entwicklers sind.

Amazon API Gateway-Architektur

Architektur

Diese Architektur veranschaulicht, wie serverlose Anwendungen mit konsistenter und integrierter Entwicklererfahrung erstellt werden können. Von den Endbenutzern bis zu den Rechenzentren übernimmt API Gateway alle damit verbundenen Aufgaben, wie z. B. die Annahme und Verarbeitung Tausender gleichzeitiger Anrufe, Verkehrsmanagement, Autorisierung, Überwachung, Zugriffskontrolle usw.

Amazon API Gateway-Funktionen

  1. Es unterstützt sowohl zustandsbehaftete als auch zustandslose APIs. (Beispiele: Websocket, HTTP und REST).
  2. Zu den leistungsstarken Authentifizierungsmechanismen gehören AWS Identity, Access Management Policies und der Lambda-Genehmiger.
  3. Entwicklerportal, in dem API-Entwickler ihre APIs veröffentlichen können.
  4. Ausführungs- und Zugriffsprotokollierung für CloudWatch, einschließlich der Option zum Einstellen von Alarmen.
  5. Integration mit anderen AWS-Services wie z AWS Lambda und AWS Kinesis.
  6. Die Integration mit AWS WAF wird zum Schutz vor Web-Exploits verwendet, und AWS X-Ray wird verwendet, um Leistungslatenzen zu verstehen und hervorzuheben.

Erste Schritte mit Amazon API Gateway

Jetzt werden wir eine serverlose API erstellen. In einer serverlosen API können wir uns auf unsere Anwendungen konzentrieren, anstatt Zeit mit der Verwaltung von Servern zu verbringen. Es funktioniert so:

  • API wird vom Client aufgerufen
  • API sendet Anfrage an Lambda
  • Lambda führt die Lambda-Funktion aus und sendet das Ergebnis zurück an die API
  • Nachdem das Ergebnis von Lambda empfangen wurde, antwortet die API dem Client

http-API

Schritt 1 – Erstellen Sie eine Lambda-Funktion

Die Lambda-Funktion wird für das Backend unserer API verwendet. Lambda führt den Code nur aus, wenn er benötigt wird. Es skaliert auch automatisch von wenigen Anfragen pro Tag auf tausend Anfragen pro Sekunde.

Lambada-Funktion erstellen

Erstellen einer Lambda-Funktion:

1) Gehen Sie zur Lambda-Konsole unter https://console.aws.amazon.com/lambda

2) Klicken Sie auf Funktion erstellen.

3) Geben Sie als Funktionsnamen „my-function“ ein.

4) Wählen Sie Python 3.9 als Laufzeit.

5) Für diese Funktion müssen wir auf der Registerkarte Berechtigungen und erweiterte Einstellungen nichts ändern, da die Standardberechtigungen für diese Demonstration ausreichen.

4) Klicken Sie auf Funktion erstellen.

SCHRITT 2 – Erstellen einer HTTP-API

Amazon API

Die HTTP-API stellt einen HTTP-Endpunkt für Ihre Lambda-Funktion bereit. Es funktioniert so:

  • Der Client sendet eine Anfrage an die HTTP-API
  • Die API löst Lambda aus, das dann die Lambda-Funktion ausführt
  • Lambda sendet das Ergebnis an die API
  • Die API antwortet dem Client mit der empfangenen Antwort

Schritte zum Erstellen einer HTTP-API

1) Besuchen Sie die API Gateway-Konsole unter https://console.aws.amazon.com/apigateway

2) Klicken Sie auf Erstellen, um Ihre erste HTTP-API zu erstellen

3) Klicken Sie zur Integration auf Integration hinzufügen

4) Lambda auswählen.

5) Geben Sie Ihre Lambda-Funktion my-function ein.

6) Geben Sie als API-Name my-http-api ein.

7) Klicken Sie auf Weiter.

8) Überprüfen Sie die für Sie erstellte Route und wählen Sie dann Weiter.

9) Überprüfen Sie die für Sie erstellte Stufe und wählen Sie dann Weiter.

10) Klicken Sie auf Erstellen.

SCHRITT 3 Testen Sie Ihre API –

Als nächstes müssen wir unsere API testen, um sicherzustellen, dass sie funktioniert. Dazu verwenden wir einen Webbrowser, um unsere API aufzurufen.

Amazon API

Um unsere API zu testen

  1. Gehen Sie zur API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
  2. Wählen Sie Ihre API aus.
  3. Notieren Sie sich die Aufruf-URL Ihrer API. (siehe Bild oben)
  4. Kopieren Sie die Aufruf-URL Ihrer API und fügen Sie sie in einen Webbrowser ein. Verbinden Sie die Aufruf-URL und den Namen Ihrer Lambda-Funktion, um Ihre Lambda-Funktion aufzurufen. Die API Gateway-Konsole erstellt standardmäßig eine Route unter Verwendung des Namens Ihrer Lambda-Funktion „my-function“. 

    Die vollständige URL sollte wie folgt aussehen: https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Wenn Sie diese URL laden, sendet Ihr Browser eine GET-Anfrage an die API

  1. Sie sollten den Text „Hello from Lambda!“ sehen. in Ihrem Browser. Daher wird die Antwort Ihrer API überprüft.

Amazon API

Zusammenfassung

Wir haben unsere erste HTTP-API mit Amazon API Gateway und AWS Lambda erstellt. Darüber hinaus können wir verschiedene Anwendungsfälle derselben untersuchen und auf ähnliche Weise auch eine REST-API erstellen, die mehr Funktionalitäten bietet.

Hat Ihnen dieser Artikel gefallen? Sagen Sie uns Ihre Gedanken im Kommentar unten. Vergessen Sie auch nicht zu erwähnen, welchen Artikel Sie als nächstes lesen möchten.

Zeitstempel:

Mehr von Analytics-Vidhya