New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie richte ich API Gateway mit meiner eigenen CloudFront-Distribution ein?
Ich möchte einen Edge-optimierten API-Endpunkt in Amazon API Gateway, aber ich möchte dafür meine eigene Amazon CloudFront-Distribution erstellen.
Kurzbeschreibung
Wenn deine API-Clients geografisch verteilt sind, verwende einen Edge-optimierten API-Endpunkt in API Gateway. Diese Art Endpunkt fungiert als regionaler Endpunkt mit einer von AWS verwalteten CloudFront-Webdistribution, um die Verbindungszeit der Kunden zu verbessern.
Um das globale CloudFront-Content Delivery Network zu nutzen und mehr Kontrolle über die Distribution zu behalten, verwende eine Regionale API mit einer benutzerdefinierten CloudFront-Webdistribution.
Lösung
Voraussetzungen: Erstelle eine AWS Lambda-Funktion zur Integration mit der API Gateway-REST-API und erstelle eine regionale API in API Gateway.
Erstelle ein SSL/TLS-Zertifikat in AWS Certificate Manager (ACM) in der Region us-east-1 und in derselben AWS-Region, in der sich deine API Gateway-REST-API befindet. Gehe wie folgt vor, um ein Zertifikat für einen Domainnamen zu erhalten, der von ACM ausgestellt oder in ACM importiert wurde:
- Registriere deine Internetdomain. Du kannst entweder Amazon Route 53 oder eine von einem Drittanbieter akkreditierten Domain-Vergabestelle verwenden.
- Erstelle ein SSL/TLS-Zertifikat für den Domainnamen in ACM, oder importiere eines in ACM.
Eine GET-Methode für API einrichten
Führe die folgenden Schritte aus:
- Öffne die API Gateway-Konsole.
- Wähle den Namen deiner neuen regionalen API.
- Wähle Ressource erstellen.
- Gib als Ressourcenname Begrüßung ein.
- Wähle Methode erstellen.
- Wähle GET als Methodentyp und Lambda-Funktion als Integrationstyp. Schalte dann die Schaltfläche zur Lambda-Proxy-Integration um und wähle deine Lambda-Funktion aus.
Die API bereitstellen und die Aufruf-URL der API identifizieren
Führe die folgenden Schritte aus:
- Stelle die API auf einer Stufe bereit.
- Kopiere oben im Stage Editor-Bereich die Aufruf-URL für die GET-HTTP-Methode der Ressource Begrüßung in deine Zwischenablage.
Beispiel für eine URL zum Aufrufen einer API Gateway-API:
https://restApiId.execute-api.region.amazonaws.com/stageName/greetings
Testen der API für eine Antwort von 200 OK
Um zu bestätigen, dass die API eine 200 OK-Antwort zurückgibt, teste die API-Aufruf-URL über die API Gateway-Konsole, die Postman-App oder curl. Weitere Informationen zu Postman und curl findest du auf der Postman-Website und der curl-Website.
Verwendung von curl, um die API auf eine 200-OK-Antwort zu testen
Führe je nach Betriebssystem einen der folgenden Befehle aus.
Hinweis: Ersetze https://restApiId.execute-api.region.amazonaws.com/stageNamee/greetings durch deine API-Aufruf-URL.
Verwende für Linux den folgenden Befehl:
curl -IX GET https://restApiId.execute-api.region.amazonaws.com/stageName/greetings
Führe für Windows PowerShell den folgenden Befehl aus:
curl https://restApiId.execute-api.region.amazonaws.com/stageName/greetings
Hinweis: Wenn du einen anderen Statuscode als 200 OK erhältst, überprüfe die Konsole, um zu bestätigen, dass die API auf deiner Stufe bereitgestellt wurde. Vergewissere dich außerdem, dass die Aufruf-URL die Stufe korrekt angibt.
Eine CloudFront-Webdistribution erstellen
Führe die folgenden Schritte aus:
-
Öffne die CloudFront-Konsole.
-
Wähle Distribution erstellen.
-
Gib als ursprűnglichen Domainnamen deine API-Aufruf-URL ein. Lösche dann die Stufe und den Ressourcennamen.
Beispiel für einen ursprűnglichen Domainnamen:https://restApiId.execute-api.region.amazonaws.com
-
Wähle als Protokoll die Option Nur HTTPS aus.
Hinweis: API Gateway unterstützt keine unverschlüsselten Endpunkte (HTTP). Weitere Informationen findest du in den Häufig gestellten Fragen zu Amazon API Gateway. -
Für das Minimale Ursprungs-SSL-Protokoll empfiehlt es sich, TLSv1.2 auszuwählen. Wähle nicht SSLv3 aus. API Gateway unterstützt das SSLv3-Protokoll nicht.
-
Gib als Ursprungspfad deinen API-Stufennamen mit einem Schrägstrich davor ein (****/stageName). Oder, wenn du die URL aufrufst, gib nichts in den Ursprungspfad ein, um den Stufennamen selbst einzugeben.
Hinweis: Wenn du einen falschen Stufennamen als Ursprungspfad eingibst und dann die CloudFront-Distribution aufrufst, erhältst du möglicherweise eine Fehlermeldung. Beispielsweise erhältst du möglicherweise einen Fehler bei einer nicht autorisierten Anfrage, der die Meldung „Missing Authentication Token“ und den Antwortcode „403 Forbidden“ zurückgibt. -
(Optional) Um dem Ursprung benutzerdefinierte Kopfzeilen zuzuordnen, gib eine oder mehrere benutzerdefinierte Kopfzeilen für benutzerdefinierte Kopfzeilen des Urpsrungs ein.
-
Befolge die Anweisungen im Abschnitt Wenn du die IAM-Authentifizierung für die API oder benutzerdefinierte Domainnamen für die CloudFront-Webdistribution verwendest, falls zutreffend.
-
(Optional) Konfiguriere unter Distributionseinstellungen die zusätzlichen Einstellungen, die du anpassen möchtest.
-
Wähle Distribution erstellen.
-
Warte 15 bis 20 Minuten, bis deine Distribution bereitgestellt ist. Wenn der Status der Distribution in der Konsole als Bereitgestellt angezeigt wird, ist die Distribution bereit.
Weitere Informationen findest du unter Eine Distribution erstellen.
So testest du die CloudFront-Webdistribution
Führe die folgenden Schritte aus:
-
Öffne die CloudFront-Konsole.
-
Kopiere den Distributions-Domainnamen deiner Distribution in die Zwischenablage.
Beispiel für einen nicht benutzerdefinierten Domainnamen:a222222bcdefg5.cloudfront.net
-
Teste den Domainnamen auf eine 200 OK-Antwort. Wenn du den Fehlercode 500 server error erhältst, wird die Distribution möglicherweise nicht bereitgestellt. Wenn du keine Antwort erhältst, wurde der CloudFront-DNS-Datensatz noch nicht weitergegeben. Warte in beiden Fällen 15 bis 20 Minuten, nachdem du deine Distribution erstellt hast, und wiederhole dann den Vorgang.
Wichtig: Die vorherigen Schritte beziehen sich auf API-Ressourcen, bei denen die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagament)-Authentifizierung für keine der Ressourcenmethoden aktiviert ist. Wenn du über Methoden mit IAM-Authentifizierung verfügst, füge den Ressourcennamen an das Ende des Distribution-Domainnamen an, wenn du deine API aufrufst. Die vollständige Aufruf-URL (einschließlich des Ressourcennamens) ähnelt einem der folgenden Beispiele.
Beispiel für eine API Gateway API-Aufruf-URL mit Ursprungspfad:
https://distributionDomainName/stageName/resourceName
Beispiel für eine API Gateway-API-Aufruf-URL ohne Ursprungspfad:
https://distributionDomainName/resourceName
Weitere Informationen zum Testen der Distribution findest du unter Wie aktiviere ich die IAM-Authentifizierung für API Gateway-APIs?
Wenn du die IAM-Authentifizierung für die API oder benutzerdefinierte Domainnamen für die CloudFront-Webdistribution verwendest
Standardmäßig leitet CloudFront eingehende Autorisierungs-Header nicht an den Ursprung weiter (in diesem Anwendungsfall API Gateway). Wenn du die IAM-Authentifizierung für die API oder benutzerdefinierte Domainnamen für die Distribution verwendest, führe eine der folgenden Aktionen aus.
(Für die IAM-Authentifizierung) Füge den Autorisierungs-Header zu deiner CloudFront-Allowliste hinzu
Führe die folgenden Schritte aus:
- Erstelle eine CloudFront-Distribution.
- Wähle auf der Seite Distribution erstellen für Standard-Cache-Verhalten sowie Cache-Schlüssel- und Ursprungsanforderungen die Option Legacy-Cache-Einstellungen aus.
- Wähle in der Dropdown-Liste Header die Option Include the following headers (Folgende Header einbeziehen) aus. Wähle dann Autorisierung aus der Liste der angezeigten Header aus. Konfiguriere die Header, die an deine API weitergeleitet werden sollen.
-oder-
Wähle für Cache-Schlüssel- und Ursprungsanforderungen unter Cache-Richtlinie entweder eine vorhandene Cache-Richtlinie aus, oder erstelle eine neue Cache-Richtlinie. Die Richtlinie muss den Autorisierungs-Header zu deiner CloudFront-Allowliste hinzufügen. - (Optional) Gehe wie folgt vor, um das Setup zu testen:
[Erstelle programmgesteuert die erforderliche Signature Version 4-Signatur](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) für deinen API Gateway-Endpunkt. Gib für den Wert Host deine API Gateway-Aufruf-URL ein. Gib für den Wert Endpunkt deine CloudFront-Webdistributions-URL ein.
Beispiel für eine URL zum Aufrufen eines API Gateways:
Beispiel für eine CloudFront-Webdistributions-URL:example_api_id.execute.example_region.amazon.com
d######.cloudfront.net
Hinweis: Wenn du die Postman-App verwendest, wähle auf der Registerkarte Autorisierung für Typ die Option AWS Signature aus. Gib dann den Zugriffsschlüssel und den Secret-Schlüssel ein. Postman verwendet die von dir eingegebenen Anmeldeinformationen, um die erforderlichen Header zu generieren. Verwende dann den Autorisierungs-Header (und alle SignedHeader), der aus dem Signature Version 4-Prozess generiert wurde, um die API-Anfrage an die CloudFront-Distribution zu senden.
(Für benutzerdefinierte Domainnamen oder IAM-Authentifizierung) In API Gateway einen regionalen, benutzerdefinierten Domainnamen einrichten, um auf deine API zuzugreifen
Führe die folgenden Schritte aus:
-
Erstelle eine neue regionale API in API Gateway oder ändere die Edge-optimierte API Gateway-API in eine regionale API.
-
Richte einen regionalen, benutzerdefinierten Domainnamen für die API ein und erstelle eine API-Zuweisung für die API.
Hinweis: Verwende diesen benutzerdefinierten Domainnamen, wenn du über CloudFront auf deine API zugreifst. -
Erstelle eine CloudFront-Webdistribution, aber gib für Domainname des Ursprungs deinen API Gateway-Zieldomainnamen anstelle deiner API-Aufruf-URL ein.
Hinweis: Finde deinen AP Gateway-Zieldomainnamen im Abschnitt Endpunkt-** Konfiguration** deiner benutzerdefinierten Domaindetails.
Beispiel für einen API Gateway-Zieldomainnamen:d-######.execute-api.example-region.amazonaws.com
-
Wähle auf der Seite Distribution erstellen für Standard-Cache-Verhalten sowie Cache-Schlüssel- und Ursprungsanforderungen die Option Legacy-Cache-Einstellungen aus.
-
Wähle in der Dropdown-Liste Header die Option Include the following headers (Folgende Header einbeziehen) aus. Wähle dann den Host und die Autorisierung aus der Liste der angezeigten Header aus. Konfiguriere die Header, die an deine API weitergeleitet werden sollen.
-oder-
Wähle für Cache-Schlüssel- und Ursprungsanforderungen unter Cache-Richtlinie entweder eine vorhandene Cache-Richtlinie aus, oder erstelle eine neue Cache-Richtlinie. Die Richtlinie muss den Autorisierungs-Header zu deiner CloudFront-Allowliste hinzufügen. -
Gib unter Distributionseinstellungen für Alternativer Domainname den benutzerdefinierten Domainnamen ein, den du erstellt hast.
-
Wähle für SSL-Zertifikat die Option Benutzerdefiniertes SSL-Zertifikat aus. Füge dann das AWS Certificate Manager (ACM)-Zertifikat für diese Domain hinzu.
-
Nachdem du die CloudFront-Webdistribution bereitgestellt hast, konfiguriere den DNS-Datensatz so, dass die benutzerdefinierte Domain der CloudFront-Webdistribution zugeordnet wird. Erstelle dazu entweder einen Alias- oder CNAME-Datensatz. Weitere Informationen findest du unter Verwendung benutzerdefinierter URLs durch Hinzufügen alternativer Domainnamen (CNAMEs).
-
(Optional) Um das Setup zu testen, [erstelle programmgesteuert eine signierte Signaturanfrage für Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) für deinen benutzerdefinierten Domainnamen.
**Hinweis:**Du kannst das Setup auch mit der Postman-App testen.
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 4 Monaten
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 4 Monaten
- AWS OFFICIALAktualisiert vor 3 Monaten