In AWS API Gateway habe ich eine GET-Methode, die eine Lambda-Funktion aufruft.
Beim Testen der Methode im API Gateway-Dashboard wird die Lambda-Funktion erfolgreich ausgeführt, aber API Gateway ordnet den Aufruf context.success () keinem 200-Ergebnis zu, obwohl die Standardzuordnung auf yes gesetzt ist.
Stattdessen bekomme ich diesen Fehler:
%Vor%Dies ist mein Integration Response Setup:
Und das ist meine Methode Antwort-Setup:
Grundsätzlich würde ich erwarten, dass das API-Gateway die erfolgreiche Lambda-Ausführung erkennt und diese dann standardmäßig auf eine 200-Antwort abbildet das passiert nicht.
Weiß jemand, warum das nicht funktioniert?
Beim Speichern der Standard-Integrationsantwort-Zuordnung, die behoben wurde, ist ein Problem aufgetreten. Der Fehler verursachte Anforderungen an API-Methoden, die falsch gespeichert wurden, um einen 500-Fehler zurückzugeben. Die CloudWatch-Protokolle sollten Folgendes enthalten:
%Vor%Da das 'ENABLE CORS' die standardmäßige Integrationsantwort speichert, ist dieses Problem auch in Ihrem Szenario aufgetreten.
Weitere Informationen finden Sie im AWS-Foreneintrag: Ссылка
Am besten,
Jurgen
Ich habe das Problem gefunden:
Amazon hat eine neue Schaltfläche in der API-Gateway-Ressourcenkonfiguration hinzugefügt betitelt 'Aktivieren CORS'. Ich hatte das vorher jedoch einmal angeklickt es scheint keine Möglichkeit zu geben, es zu deaktivieren
Das Aktivieren von CORS mit dieser Schaltfläche (anstatt es manuell zu tun, was ich am Ende getan habe) scheint sogar bei einem Serverfehler einen internen Serverfehler zu verursachen erfolgreiche Lambda-Ausführung.
LÖSUNG: Ich habe die Ressource gelöscht und neu erstellt, ohne zu klicken auf 'Aktivieren Sie CORS' dieses Mal und alles hat gut funktioniert.
Dies scheint ein Fehler mit dieser Funktion zu sein, aber vielleicht tue ich es einfach nicht verstehe es gut genug. Kommentar wenn Sie weitere Informationen haben. Vielen Dank.
Tags und Links amazon-web-services aws-lambda aws-api-gateway aws-sdk