Amazon API Gateway-Konzepte - Amazon API Gateway

Amazon API Gateway-Konzepte

API Gateway

API Gateway ist ein AWS-Service, der Folgendes unterstützt:

  • Erstellen, Bereitstellen und Verwalten einer RESTful-API (Application Programming Interface) zur Nutzung von HTTP-Endpunkten, AWS Lambda-Funktionen oder anderen AWS-Services im Backend.

  • Erstellen, Bereitstellen und Verwalten einer WebSocket-API für die Bereitstellung von AWS Lambda-Funktionen oder anderen AWS-Services.

  • Aufrufen der bereitgestellten API-Methoden über die HTTP- und WebSocket-Endpunkte des Frontends.

API Gateway-REST-API

Eine Sammlung von HTTP-Ressourcen und Methoden, die in Backend-HTTP-Endpunkten, Lambda-Funktionen oder andere AWS-Services integriert sind. Sie können diese Sammlung in einer oder mehreren Stufen bereitstellen. In der Regel werden API-Ressourcen in einer Ressourcenstruktur organisiert, die der Anwendungslogik entspricht. Jede API-Ressource kann eine oder mehrere API-Methoden offenlegen, die eindeutige HTTP-Verben haben, die von API Gateway unterstützt werden.

API Gateway-HTTP-API

Eine Sammlung von Routen und Methoden, die mit Backend-HTTP-Endpunkten oder Lambda-Funktionen integriert sind. Sie können diese Sammlung in einer oder mehreren Stufen bereitstellen. Jede Route kann eine oder mehrere API-Methoden bereitstellen, die eindeutige HTTP-Verben haben, die von API Gateway unterstützt werden.

API Gateway-WebSocket-API

Eine Sammlung von WebSocket-Routen und -Routenschlüsseln, die in Backend-HTTP-Endpunkte, Lambda-Funktionen oder andere AWS-Services integriert sind. Sie können diese Sammlung in einer oder mehreren Stufen bereitstellen. API-Methoden werden über WebSocket-Verbindungen im Frontend aufgerufen, die einem registrierten benutzerdefinierten Domainnamen zugeordnet werden können.

API-Bereitstellung

Eine Point-in-Time-Snapshot Ihrer API Gateway-API zu einem bestimmten Zeitpunkt. Damit eine Bereitstellung von einem Client verwendet werden kann, muss sie mindestens einer API-Stufe zugeordnet sein.

API-Developer

Ihr AWS-Konto, das eine API-Gateway-Bereitstellung besitzt (z. B. ein Service Provider, der auch den programmgesteuerten Zugriff unterstützt).

API-Endpunkt

Ein Hostname für eine API in API Gateway, die in einer bestimmten Region bereitgestellt wird. Der Hostname hat das Format {api-id}.execute-api.{region}.amazonaws.com. Die folgenden Arten von API-Endpunkten werden unterstützt:

API-Schlüssel

Eine alphanumerische Zeichenfolge, die API Gateway verwendet, um einen App-Entwickler zu identifizieren, der Ihre REST-API oder WebSocket-API verwendet. API Gateway kann API-Schlüssel für Sie erstellen. Alternativ können Sie Schlüssel aus einer CSV-Datei importieren. Sie können API-Schlüssel zusammen mit Lambda-Genehmigern oder Nutzungsplänen verwenden, um den Zugriff auf Ihre APIs zu steuern.

Siehe API-Endpunkte.

API-Eigentümer

Siehe API-Developer.

API-Stufe

Ein logischer Verweis auf einen Lebenszyklusstatus Ihres API (z. B. "dev", "prod", "Beta", "v2"). API-Stufen werden mit API-ID und Stufenname bezeichnet.

App-Developer

Ein App-Entwickler, der – mit oder ohne AWS-Konto – mit der von Ihnen als API-Developer bereitgestellten API interagiert. App-Developer sind Ihre Kunden. Ein App-Developer wird in der Regel durch einen API-Schlüssel identifiziert.

Rückruf-URL

Wenn ein neuer Client über eine WebSocket-Verbindung verbunden wird, können Sie in API Gateway eine Integration zum Speichern der Client-Rückruf-URL aufrufen. Sie können diese Rückruf-URL dann zum Senden von Nachrichten vom Backend-System zum Client verwenden.

Entwicklerportal

Eine Anwendung, mit der Ihre Kunden Ihre API-Produkte (API Gateway-Nutzungspläne) registrieren, erkennen und abonnieren, ihre API-Schlüssel verwalten und ihre Nutzungsmetriken für Ihre APIs anzeigen können.

Edge-optimierter API-Endpunkt

Der Standard-Hostname einer API-Gateway-API, die in der angegebenen Region bereitgestellt wird, während eine CloudFront-Distribution verwendet wird, um den Clientzugriff in der Regel von verschiedenen AWS-Regionen aus zu erleichtern. API-Anfragen werden an den nächstgelegenen CloudFront Point of Presence (POP) weitergeleitet, der in der Regel die Verbindungszeit für geografisch verteilte Clients verbessert.

Siehe API-Endpunkte.

Integrationsanforderung

Die interne Schnittstelle einer WebSocket-API-Route oder REST-API-Methode in API Gateway, über die Sie den Text einer Routenanforderung oder die Parameter und den Text einer Methodenanforderung den für das Backend erforderlichen Formaten zuordnen.

Integrationsantwort

Die interne Schnittstelle einer WebSocket-API-Route oder einer REST-API-Methode in API Gateway, über die Sie die Statuscodes, Header und Nutzlast, die vom Backend empfangen werden, dem Antwortformat zuordnen, das an eine Client-App zurückgegeben wird.

Zuweisungsvorlage

Ein Skript in Velocity Template Language (VTL), mit dem der Anforderungstext im Frontend-Datenformat in das Backend-Datenformat konvertiert wird oder mit dem der Antworttext aus dem Backend-Datenformat in das Frontend-Datenformat konvertiert wird. Zuweisungsvorlagen können in der Integrationsanforderung oder in der Integrationsantwort angegeben werden. Sie können auf Daten verweisen, die zur Laufzeit als Kontext- und Stufenvariablen zur Verfügung gestellt werden.

Die Zuordnung kann so einfach wie eine Identitätstransformation sein, mit der für eine Anforderung Header oder Text unverändert durch die Integration vom Client an das Backend übergeben werden. Das Gleiche gilt für eine Antwort, in der die Nutzlast vom Backend an den Client übergeben wird.

Methodenanforderung

Die öffentliche Schnittstelle einer API-Methode in API Gateway, die die Parameter und den Text vorgibt, die ein App-Entwickler in Anfragen senden muss, um über die API auf das Backend zugreifen zu können.

Methodenantwort

Die öffentliche Schnittstelle einer REST-API, die Statuscodes, Header und Textmodelle vorgibt, die ein App-Developer in Antworten von der API erwarten sollte.

Pseudointegration

Bei einer Mock-Integration werden API-Antworten direkt von API Gateway generiert, ohne dass ein Integrations-Backend erforderlich ist. Als API-Entwickler entscheiden Sie, wie API Gateway auf eine Mock-Integrationsanfrage antwortet. Dazu konfigurieren Sie die Integrationsanforderung und -antwort der Methode, um einer Antwort einen bestimmten Statuscode zuzuweisen.

Model

Ein Datenschema, das die Datenstruktur einer Anforderungs- oder Antwortnutzlast angibt. Ein Modell ist erforderlich, um ein stark typisiertes SDK einer API zu generieren. Es wird auch zur Validierung der Nutzlast verwendet. Ein Modell bietet praktische Vorteile, da eine Beispiel-Zuweisungsvorlage generiert wird, über die eine Produktionszuweisungsvorlage initiiert werden kann. Für die Erstellung einer Zuweisungsvorlage ist ein Modell zwar hilfreich, aber nicht erforderlich.

Privates API

Siehe Privater API-Endpunkt.

Privater API-Endpunkt

Ein API-Endpunkt, der über Schnittstellen-VPC-Endpunkte bereitgestellt wird und einem Client den sicheren Zugriff auf private API-Ressourcen innerhalb einer VPC ermöglicht. Private APIs sind vom öffentlichen Internet isoliert und können nur über VPC-Endpunkte erreicht werden, für die API Gateway Zugriff gewährt wurde.

Private Integration

Ein API Gateway-Integrationstyp für einen Client zum Zugriff auf Ressourcen in der VPC eines Kunden über einen privaten REST-API-Endpunkt, ohne die Ressourcen im öffentlichen Internet offenzulegen.

Proxy-Integration

Eine vereinfachte API Gateway-Integrationskonfiguration. Sie können eine Proxy-Integration als HTTP-Proxy-Integration oder als Lambda-Proxy-Integration einrichten.

Bei einer HTTP-Proxy-Integration leitet API Gateway die gesamte Anfrage und Antwort zwischen dem Frontend und einem HTTP-Backend weiter. Bei der Lambda-Proxy-Integration sendet API Gateway die gesamte Anfrage als Eingabe an eine Lambda-Funktion im Backend. API Gateway wandelt dann die Ausgabe der Lambda-Funktion in eine HTTP-Antwort des Frontends um.

In REST-APIs wird die Proxy-Integration meist mit einer Proxy-Ressource verwendet, die durch eine gierige Pfadvariable (z. B. {proxy+}) und die Catch-all-Methode ANY dargestellt wird.

Quick Create

Sie können die Schnellerstellung verwenden, um die Erstellung einer HTTP-API zu vereinfachen. Quick Create erstellt eine API mit einer Lambda- oder HTTP-Integration, eine Catch-All-Standardroute und eine Standardphase, die für die automatische Bereitstellung von Änderungen konfiguriert ist. Weitere Informationen finden Sie unter Erstellen einer HTTP-API mithilfe der AWS-CLI.

Regionaler API-Endpunkt

Der Hostname einer API, die für eine bestimmte Region bereitgestellt wird und zur Bedienung von Clients, wie z. B. EC2-Instances, in derselben AWS-Region bestimmt ist. API-Anfragen werden direkt an die regionsspezifische API Gateway-API gerichtet, ohne dass eine CloudFront-Distribution durchlaufen werden muss. Bei regionsspezifischen Anfragen umgeht ein regionaler Endpunkt den unnötigen Hin- und Rückweg zu einer CloudFront-Distribution.

Darüber hinaus können Sie latenzbasiertes Routing an regionalen Endpunkten anwenden, um eine API mit derselben regionalen API-Endpunkt-Konfiguration für mehrere Regionen bereitzustellen, dieselben benutzerdefinierten Domänennamen für jede bereitgestellte API festzulegen und latenzbasierte DNS-Datensätze in Route 53 zu konfigurieren, um Client-Anfragen an die Region mit der niedrigsten Latenz zu leiten.

Siehe API-Endpunkte.

Route

Eine WebSocket-Route in API Gateway wird verwendet, um eingehende Nachrichten basierend auf dem Inhalt der Nachricht an eine bestimmte Integration, wie z. B. eine AWS Lambda-Funktion, zu leiten. Wenn Sie Ihre WebSocket-API definieren, geben Sie einen Routenschlüssel und ein Integrations-Backend an. Der Routenschlüssel ist ein Attribut im Nachrichtentext. Wenn der Routenschlüssel in einer eingehenden Nachricht abgeglichen wird, wird das Integrations-Backend aufgerufen.

Es kann auch eine Standardroute für nicht übereinstimmende Routenschlüssel oder zur Angabe eines Proxy-Modells festgelegt werden, mit dem die Nachricht unverändert an Backend-Komponenten übergeben wird, die die Weiterleitung und Verarbeitung der Anforderung durchführen.

Routenanforderung

Die öffentliche Schnittstelle einer WebSocket-API-Methode in API Gateway, die den Text vorgibt, den ein App-Entwickler in den Anfragen zum Zugriff auf das Backend über die API senden muss.

Routenantwort

Die öffentliche Schnittstelle einer WebSocket-API, die Statuscodes, Header und Textmodelle vorgibt, die ein App-Entwickler von API Gateway erwarten sollte.

Nutzungsplan

Ein Nutzungsplan gewährt ausgewählten API-Clients den Zugriff auf eine oder mehrere bereitgestellte REST- oder WebSocket-APIs. Sie können einen Nutzungsplan dazu verwenden, die Drosselungs- und Kontingentlimits zu konfigurieren, die für einzelne Client-API-Schlüssel erzwungen werden.

WebSocket-Verbindung

API Gateway unterhält eine beständige Verbindung zwischen Clients und API Gateway. Es gibt keine beständige Verbindung zwischen API Gateway und Backend-Integrationen wie z. B. Lambda-Funktionen. Backend-Services werden nach Bedarf aufgerufen, basierend auf dem Inhalt der Nachrichten, die von Clients empfangen werden.