Verwenden von API-Zuweisungen zum Verbinden von API-Stufen mit einem benutzerdefinierten Domainnamen für REST-APIs
Sie verwenden API-Mappings, um API-Stufen mit einem benutzerdefinierten Domain-Namen zu verbinden. Dadurch wird Traffic über Ihren benutzerdefinierten Domainnamen an Ihre APIs gesendet.
Ein API-Mapping gibt eine API, eine Phase und optional einen Pfad an, die für das Mapping verwendet werden sollen. Beispielsweise können Sie https://api.example.com/orders der production-Stufe einer API zuweisen.
Sie können HTTP-API- und REST-API--Stufen demselben benutzerdefinierten Domain-Namen zuweisen.
Bevor Sie ein API-Mapping erstellen, benötigen Sie eine API, eine Phase und einen benutzerdefinierten Domain-Namen. Weitere Informationen zum Erstellen eines benutzerdefinierten Domain-Namens finden Sie unter Einrichten eines regionalen benutzerdefinierten Domainnamens in API Gateway.
Eingehende Anfragen an Ihren benutzerdefinierten Domainnamen
Wenn Sie einen benutzerdefinierten Domainnamen einer Stufe Ihrer API zuweisen, entfernt API Gateway den eingehenden Basispfad. Dadurch wird der zugewiesene Basispfad aus dem Aufruf an die API entfernt. Wenn beispielsweise Ihre Basispfad-Zuweisung https://api.example.com/orders/shop/5 der test-Stufe zugeordnet war und Sie die folgende Anfrage https://api.example.com/orders/shop/5/hats verwendet haben, würde API Gateway die Ressource /hats der test-Stufe Ihrer API aufrufen – nicht die Ressource orders/shop/5/hats.
Zuweisen von API-Anforderungen
Im Folgenden wird erklärt, wie API Gateway API-Zuweisungen auswertet.
Sie können eine API-Zuweisung mit einstufigen Zuweisungen erstellen, z. B. eine API-Zuweisung von orders zur beta-Stufe einer API und eine API-Zuweisung von shipping zur alpha-Stufe einer API. Für regionale benutzerdefinierte Domainnamen mit der TLS-1.2-Sicherheitsrichtlinie unterstützt API Gateway mehrstufige API-Zuweisungen. Sie können z. B. eine API-Zuweisung von orders/v1/items zur alpha-Stufe einer API und orders/v2/items zur beta-Stufe einer API erstellen. Wenn Sie eine Zuweisung mit mehreren Ebenen erstellen, leitet API Gateway Anfragen an die API-Zuweisung weiter, die den längsten übereinstimmenden Pfad hat.
Sie können auch eine API-Zuweisung für den leeren Pfad (none) erstellen. Wenn kein Pfad mit der Anfrage übereinstimmt, sendet API Gateway die Anfrage an den leeren Pfad (none).
In diesem Beispiel hat der benutzerdefinierte Domainname https://api.example.com die folgenden API-Zuweisungen.
| API-Zuweisungen | Ausgewählte API |
|---|---|
|
|
API 1 |
|
|
API 2 |
|
|
API 3 |
|
|
API 4 |
|
|
API 5 |
Die folgende Tabelle zeigt, wie API Gateway die vorherigen API-Zuweisungen auf Beispielanfragen anwendet.
| Anfrage | Ausgewählte API | Erklärung |
|---|---|---|
|
|
API 2 |
Die Anforderung stimmt genau mit dieser API-Zuweisung überein. |
|
|
API 3 |
Die Anforderung stimmt genau mit diesem API-Zuweisung überein. |
|
|
API 4 |
Die Anforderung stimmt genau mit diesem API-Zuweisung überein. |
|
|
API 3 |
API Gateway wählt die Zuweisung aus, die den längsten übereinstimmenden Pfad hat. Das |
|
|
API 5 |
API Gateway wählt die Zuweisung aus, die den längsten übereinstimmenden Pfad hat. |
|
|
API 1 |
API Gateway verwendet die leere Zuweisung als Catch-All. |
|
|
API 2 |
API Gateway wählt die Zuweisung aus, die den längsten übereinstimmenden Präfix hat. Bei einem benutzerdefinierten Domainnamen, der mit einstufigen Zuweisungen konfiguriert ist, z. B. nur |
Einschränkungen
-
In einer API-Zuweisung müssen sich der benutzerdefinierte Domainname und die zugeordneten APIs im selben AWS-Konto befinden.
-
API-Zuweisungen dürfen nur Buchstaben, Zahlen und die folgenden Zeichen enthalten:
$-_.+!*'()/. -
Die maximale Länge für den Pfad in einer API-Zuweisung beträgt 300 Zeichen.
-
Es können 200 API-Zuweisungen mit mehreren Ebenen für jeden Domainnamen vorhanden sein. Dieses Limit beinhaltet keine API-Zuweisungen mit einer einzigen Ebene, wie z. B.
/prod -
Sie können HTTP-APIs nur einem regionalen benutzerdefinierten Domainnamen mit der TLS 1.2-Sicherheitsrichtlinie zuordnen.
-
Sie können WebSocket-APIs nicht demselben benutzerdefinierten Domainnamen wie dem einer HTTP-API oder REST-API zuweisen.
-
Sie müssen den Ressourceneintrag Ihres DNS-Anbieters erstellen oder aktualisieren, um ihn dem API-Endpunkt zuzuordnen, nachdem Sie Ihre API-Zuweisungen erstellt haben.
-
Wenn Sie mehrstufige API-Zuweisungen erstellen, konvertiert API Gateway alle Header-Namen in Kleinbuchstaben.
Ein API-Mapping erstellen
Um ein API-Mapping zu erstellen, müssen Sie zuerst einen benutzerdefinierten Domain-Namen, eine API und eine Phase erstellen. Für Ihren benutzerdefinierten Domainnamen muss der Routing-Modus entweder auf ROUTING_RULE_THEN_API_MAPPING oder API_MAPPING_ONLY eingestellt sein. Weitere Informationen zum Einrichten des Routing-Modus finden Sie unter Festlegen des Routing-Modus für Ihren benutzerdefinierten Domainnamen.
AWS Serverless Application Model-Beispielvorlagen, die alle Ressourcen erstellen, finden Sie unter Sitzungen mit SAM