Wie kann ich mit Lambda auf HTTP-Header für die Anfrage an AWS API Gateway zugreifen?
Sehe ich in der API-Gateway FAQdass es möglich ist, den Zugriff auf die request-Header gesendet, um die API-Gateway...
Wenn Sie bereits nutzen OAuth-Token oder sonstige Berechtigung
Mechanismus, können Sie ganz einfach setup-API-Gateway nicht Unterschrift API
anrufen und einfach nach vorne die token-Header, um Ihre back-End für
Verifizierung.
Jedoch finde ich kein Beispiel, wie dies in der Dokumentation und es ist unklar, wie der Zugriff auf diese Daten mithilfe von Lambda.
Ich bin in der Lage, eine offene API und erhalten Sie Zugriff auf das JSON-Objekt, das Teil einer POST (Exemplarische Vorgehensweise: - API-Gateway und Lambda-Funktionen), sondern um die Implementierung eines OAuth-2.0-Stil-API mit meinem eigenen Anbieter ich brauche den Zugriff auf die "Authorization" - header.
Meine Vorliebe ist das einstellen mit Lambda und Java 8, aber ein Beispiel für die Verwendung node.js wäre auch hilfreich zu verstehen, wie dies zu erreichen.
InformationsquelleAutor der Frage JaredHatfield | 2015-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen Eingabe-mapping innerhalb
Integration Request
- panel auf dem Armaturenbrett-Bildschirm Beschreibung Ihrer API-Methode.Folgenden code übersetzt
name
query Eingabe-parameter inLambda Event input object
:Screenshot:
Finden Sie mehr info über diese in der ursprünglichen API-Gateway zu Lambda input thread auf den AWS-Foren.
InformationsquelleAutor der Antwort kixorz
Zunächst müssen Sie die Falle, die die
Authorization
- header aus der HTTP-GET-Anfrage. Dann müssen Sie anzeigen, dass der Wert der Lambda-Ereignisobjekts.Gehen Sie auf die API-Methode dashboard und klicken Sie auf Methode Anforderung. Dort können Sie eine
HTTP Request Header
genanntAuthorization
wie unten gezeigt.Diesem Falle wird die
Authorization
- header, so können Sie Sie später zu verwenden.Gehen Sie nun zurück zu der Methode dashboard und klicken Sie auf
Integration Request
. Von hier aus können Sie übergeben Sie den Wert der Kopfzeile in die Lambda-Funktion durch ein mapping wie diese.Nun in Ihrer Lambda-Funktion können Sie den Wert wie diese.
InformationsquelleAutor der Antwort David Fevre
Können Sie die folgenden Mapping-Vorlage in der Integration Anfrage allgemein anzeigen alle Pfad, Abfrage und header-Parameter in der Lambda-event. Sie wird noch registrieren müssen Sie in der Methode Request-Sektion des API-Gateways, aber Sie können zumindest entkoppeln die Mapping-Vorlage aus den spezifischen Parametern, die Sie verwenden möchten. Auf diese Weise müssen Sie nicht haben, ändern Sie die Zuordnung Template-code jedes mal, wenn Sie ändern, Header -, Abfrage-oder Pfad-Parameter.
Schrieb ich einen blog-post, die mehr detail und einige Erläuterung des Mapping-Vorlage: http://kennbrodhagen.net/2015/12/06/how-to-create-a-request-object-for-your-lambda-event-from-api-gateway/
Hier wird der Mapping-Vorlage, die Sie verwenden können:
InformationsquelleAutor der Antwort kennbrodhagen
dies ist zwar ein Alter thread, ich fand es am besten, um die Verwendung von lambda-proxy-integration für den Zweck. Mit diesem können Sie nicht haben, um etwas zu konfigurieren, die in der API-gateway und erhalten Sie alle Header in Ihrer lambda-Funktion...
InformationsquelleAutor der Antwort Prabhat
Als pro Prabhat Antwort einstellen mit lambda-proxy-integration Anfrage ist der einfachste Weg, dies zu tun, nach dem Sie die Anfrage-Header -, Pfad-Parameter und query-Parameter über
InformationsquelleAutor der Antwort Jonathan