Introduction to Amazon API Gateway (German)
Offered By: Amazon Web Services via AWS Skill Builder
Course Description
Overview
Übersicht
In dieser Übung erstellen Sie einen einfachen FAQ-Microservice. Der Microservice gibt ein JSON-Objekt mit einem zufälligen Frage- und Antwortpaar über einen Amazon API Gateway-Endpunkt zurück, der eine AWS Lambda-Funktion aufruft. Hier wird das Architekturmuster für den Microservice angezeigt:
BEHANDELTE THEMEN
Am Ende dieser Übung beherrschen Sie:
- Erstellen einer AWS Lambda-Funktion
- Erstellen eines Amazon API Gateway-Endpunkts
- Debuggen von API Gateway und Lambda mit Amazon CloudWatch
VORAUSSETZUNGEN
Programmiererfahrung und -kenntnisse in der Anwendungsentwicklung sind hilfreich, aber nicht erforderlich, um die Übung auszuführen. Sie sollten jedoch die Übung im Selbststudium Einführung in AWS Lambda abgeschlossen haben, bevor Sie diese Übung durchführen.
WEITERE AWS-SERVICES
Andere AWS-Services als die für diese Übung benötigten werden durch eine IAM-Richtlinie während Ihrer Zugriffszeit in dieser Übung deaktiviert. Darüber hinaus sind die Funktionen der in dieser Übung verwendeten Services auf die Übungsanforderungen beschränkt und in einigen Fällen als absichtlicher Aspekt des Übungsdesigns sogar noch weiter eingeschränkt. Rechnen Sie mit Fehlern, wenn Sie auf andere Services zugreifen oder Aktionen ausführen, die über die in diesem Übungshandbuch angegebenen hinausgehen.
Technische Begrifflichkeiten
MICROSERVICE-ARCHITEKTUR
„Der Microservice-Architekturstil ist ein Ansatz zur Entwicklung einer einzelnen Anwendung als Suite kleiner Services, die jeweils in einem eigenen Prozess ausgeführt werden und mit einfachen Mechanismen kommunizieren, häufig einer HTTP-Ressourcen-API. Diese Services basieren auf Geschäftsfunktionen und können unabhängig voneinander vom vollständig automatisierten Maschineneinsatz bereitgestellt werden. Es gibt ein Minimum an zentraler Verwaltung dieser Services, die in verschiedenen Programmiersprachen geschrieben sein und unterschiedliche Datenspeichertechnologien verwenden können.“ – James Lewis und Martin Fowler
Die Idee einer Microservices-Architektur besteht darin, ein großes, komplexes System in unabhängige, entkoppelte Services zu zerlegen, die einfach zu verwalten und zu erweitern sind. Auf diese Weise können Entwickler ihre wichtigsten Entwurfsziele wie Erweiterbarkeit, Verfügbarkeit und Wartbarkeit erreichen.
Amazon API Gateway und AWS Lambda bieten die perfekte Kombination von Web Services, um mühelos eine Reihe von Microservices zu erstellen, bereitzustellen und zu warten, die die Grundlage für komplexe Softwaresysteme bilden können.
In dieser Übung lernen Sie, wie Sie einen einfachen Microservice entwickeln, bereitstellen und debuggen, der einen Teil eines viel größeren Systems darstellt. Es besteht aus zwei Teilen: der RESTful-API und der Funktion, die ausgeführt wird, wenn ein Benutzer den Endpunkt erreicht.
APPLICATION PROGRAMMING INTERFACE (API, ANWENDUNGSPROGRAMMIERSCHNITTSTELLE)
Eine Anwendungsprogrammierschnittstelle ist eine Reihe von Anweisungen, die definieren, wie Entwickler über eine Schnittstelle auf eine Anwendung zugreifen. Die Idee hinter einer API besteht darin, einen standardisierten Ansatz für die Schnittstelle zwischen den verschiedenen von einer Anwendung bereitgestellten Services zu erstellen. Eine API kann mit einem Software Development Kit (SDK) verwendet werden, einer Sammlung von Tools, mit denen Entwickler auf einfache Weise nachgelagerte Anwendungen basierend auf der API erstellen können.
API-FIRST-STRATEGIE
Viele Software-Organisationen wenden eine API-First-Strategie an, bei der jeder Service in ihrem Stack an erster Stelle steht und immer als API freigegeben wird. Beim Entwerfen eines Services ist es schwierig, all die verschiedenen Anwendungen zu kennen, die den Service möglicherweise nutzen möchten. Zum Beispiel wäre der FAQ-Service in dieser Übung ideal, um FAQ-Seiten auf einer externen Website zu erstellen. Es ist jedoch wahrscheinlich, dass ein Cloud-Bildungsunternehmen die FAQ auch in seinem Trainingsmaterial für Flash-Karten oder seinen Trainingsunterlagen aufnehmen möchte. Wenn es sich lediglich um eine statische Website handeln würde, wäre der Aufnahmeprozess für das Bildungsunternehmen sehr schwierig. Durch die Bereitstellung einer API, die in einem standardisierten Format verwendet werden kann, ermöglicht der Microservice die Entwicklung eines Ökosystems rund um den Service sowie von Anwendungsfällen, die ursprünglich nicht berücksichtigt wurden.
RESTFUL-API
Representational State Transfer (REST) bezieht sich auf Architekturen, die sechs Einschränkungen folgen:
- Trennung der Belange über ein Client-Server-Modell.
- Zustand wird ausschließlich auf dem Client gespeichert und die Kommunikation zwischen Client und Server ist zustandslos.
- Der Client führt eine Zwischenspeicherung von Daten aus, um die Netzwerkeffizienz zu verbessern.
- Es gibt eine einheitliche Schnittstelle (in Form einer API) zwischen Server und Client.
- Wenn dem System Komplexität hinzugefügt wird, werden Ebenen eingeführt. Es können mehrere Ebenen von RESTful-Komponenten vorhanden sein.
- Folgt einem Code-On-Demand-Muster, bei dem Code im laufenden Betrieb (in unserem Fall in Lambda implementiert) heruntergeladen und geändert werden kann, ohne dass Clients aktualisiert werden müssen.
Diese Übung folgt einem RESTful-Modell. Clients senden Anforderungen an Backend-Lambda-Funktionen (Server). Die Service-Logik ist in der Lambda-Funktion enthalten und bietet eine einheitliche Schnittstelle für Clients.
BEWÄHRTE METHODEN FÜR DIE ERSTELLUNG EINER RESTFUL-API
Ein wichtiges Ziel beim Erstellen einer API ist die Schaffung eines Ökosystems der Innovation rund um Ihre Services. Daher ist es wichtig, Ihre API intuitiv und benutzerfreundlich zu gestalten. Hier ist ein allgemeines Benennungs- und Methodenschema zum Befolgen:
OperationURLFunktionGET/questionsSendet alle Fragen zurückGET/questions/17Sendet die Frage Nr. 17 zurückPOST/questionsErstellt eine neue FragePUT/questions/17Aktualisiert Frage Nr. 17PATCH/questions/17Aktualisiert Frage Nr. 17 teilweiseDELETE/questions/17Löscht Frage Nr. 17Beachten Sie, wie Sie eine bestimmte Frage erhalten. Der API-Endpunkt lautet NICHT /question/name, sondern /question/identifier. Auf diese Weise kann der API-Designer Funktionen bereitstellen, um Fragengruppen (möglicherweise alle Fragen) mit dem Endpunkt /question sowie Antworten auf einzelne Datensätze mit /question/identifier zurückzusenden. Weitere Informationen finden Sie im Abschnitt „Zusätzliche Ressourcen“ am Ende dieses Übungshandbuchs.
Einige gute Beispiele für RESTful-APIs sind:
- AWS Elemental MediaConvert
- Spotify
- Twitch
- Netflix Genie
- Slack
AMAZON API GATEWAY UND AWS LAMBDA
Ein Microservice, der Amazon API Gateway verwendet, besteht aus einer definierten Ressource und dazugehörigen Methoden (GET, POST, PUT usw.) in API Gateway sowie dem Backend-Ziel. In dieser Übung ist das Backend-Ziel eine Lambda-Funktion. Das Backend-Ziel kann jedoch ein anderer HTTP-Endpunkt (eine Drittanbieter-API oder ein überwachender Webserver), ein AWS-Service-Proxy oder eine Mock-Integration sein, die als Platzhalter verwendet werden soll.
AMAZON API GATEWAY
API Gateway ist ein von AWS bereitgestellter verwalteter Service, der das Erstellen, Bereitstellen und Verwalten von APIs vereinfacht. API Gateway enthält Funktionen für:
- Transformieren des Textes und der Header eingehender API-Anforderungen, um sie an Backend-Systeme anzupassen
- Transformieren des Textes und der Header der ausgehenden API-Antworten, um den API-Anforderungen zu entsprechen
- Steuern des API-Zugriffs über AWS Identity and Access Management
- Erstellen und Anwenden von API-Schlüsseln für die Entwicklung von Drittanbietern
- Aktivieren der Amazon CloudWatch-Integration für die API-Überwachung
- Zwischenspeichern von API-Antworten über Amazon CloudFront für schnellere Reaktionszeiten
- Bereitstellen einer API in mehreren Phasen, wodurch eine einfache Unterscheidung zwischen Entwicklung, Test, Produktion und Versioning ermöglicht wird
- Verbinden von benutzerdefinierten Domänen mit einer API
- Definieren von Modellen zur Standardisierung Ihrer API-Anforderungs- und Antworttransformationen
AMAZON API GATEWAY UND AWS LAMBDA-TERMINOLOGIE
- Ressource: Wird als URL-Endpunkt und -Pfad dargestellt. Zum Beispiel api.mysite.com/questions. Sie können Ressourcen HTTP-Methoden zuordnen und für jede Methode unterschiedliche Backend-Ziele definieren. In einer Microservices-Architektur würde eine Ressource einen einzelnen Microservice in Ihrem System darstellen.
- Methode: In API Gateway wird eine Methode durch die Kombination eines Ressourcenpfads und eines HTTP-Verbs wie GET, POST und DELETE identifiziert.
- Methodenanforderung: Die Einstellungen zur Methodenanforderung in API Gateway speichern die Einstellungen zur Methodenautorisierung und definieren die vom Client empfangenen Parameter für URL-Abfragezeichenfolgen und HTTP-Anforderungsheader.
- Integrationsanforderung: Die Einstellungen für die Integrationsanforderung definieren das mit der Methode verwendete Backend-Ziel. Hier können Sie auch Zuweisungsvorlagen definieren, um die eingehende Anforderung so zu transformieren, dass sie den Erwartungen des Backend-Ziels entspricht.
- Integrationsantwort: In den Einstellungen für die Integrationsantwort werden die Zuweisungen zwischen der Antwort vom Backend-Ziel und der Methodenantwort in API Gateway definiert. Sie können die von Ihrem Backend-Ziel zurückgegebenen Daten auch so transformieren, dass sie den Erwartungen Ihrer Endbenutzer und Anwendungen entsprechen.
- Methodenantwort: Die Einstellungen für die Methodenantwort definieren die Methodenantworttypen, ihre Header und Inhaltstypen.
- Modell: In API Gateway definiert ein Modell das Format (das Schema oder die Form) einiger Daten. Sie erstellen und verwenden Modelle, um das Erstellen von Zuweisungsvorlagen zu vereinfachen. Da API Gateway in erster Linie für formatierte Daten mit JavaScript Object Notation (JSON) ausgelegt ist, verwendet API Gateway das JSON-Schema, um das erwartete Schema der Daten zu definieren.
- Stufe: In API Gateway definiert eine Stufe den Pfad, über den auf eine API-Bereitstellung zugegriffen werden kann. Dies wird häufig verwendet, um zwischen Versionen sowie zwischen Entwicklungs- und Produktionsendpunkten usw. abzuweichen.
- Blueprint: Ein Lambda-Blueprint ist eine beispielhafte Lambda-Funktion, die als Basis für den Ausbau neuer Lambda-Funktionen verwendet werden kann.
Tags
Related Courses
Building Modern Python Applications on AWSAmazon Web Services via edX Building Modern Java Applications on AWS
Amazon Web Services via edX Building Modern Nodejs Applications on AWS
Amazon Web Services via edX Build a RESTful API(Node.js) using AWS Lambda & API Gateway
Coursera Project Network via Coursera Build a Python application(API) on AWS(Lambda+API Gateway)
Coursera Project Network via Coursera