AWS-API-Gateway Benutzerdefinierte Vollmachtgeber AuthorizerConfigurationException
Für einen Kinesis-stream, habe ich mir eine proxy-API für die Nutzung von AWS-API-Gateway. Ich habe noch eine zusätzliche authorizer mit python Lambda für den proxy.
Nach der Veröffentlichung von lambda-Funktionen und die Bereitstellung der API, konnte ich erfolgreich testen der API über das Gateway-Test-Funktionalität. Ich konnte sehen, wie die Protokolle in cloudwatch hatte detaillierte Drucke von custom-auth der lambda-Funktion. Nach der erfolgreichen Authentifizierung, API-Gateway schob den Datensatz zu meinem Kinesis-stream
Allerdings, wenn ich rufen Sie die gleiche API von Chrome Postbote client, bekomme ich 500 Internal Server Error und Antwort-Header enthält X-Cache → Fehler von cloudfront, x-amzn-ErrorType → AuthorizerConfigurationException
Lambda-auth-Funktion gibt die Politik, die ermöglicht die Ausführung von Anfrage für meine API. Policy-Dokuments:
{ "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "execute-api:Invoke", "Ressource": [ "arn:aws:execute-api:us-east-1:1234567:myapiId - /staging - /POST -/*" ], "Effect": "Allow" } ] }, "principalId": "Foo" }
Warum die Anfrage nicht aus Chrom oder curl, aber die gleiche API-test funktioniert einwandfrei von der API-Gateway?
- Es bedeutet im wesentlichen, dass Ihr Vollmachtgeber nicht zurückkehren, einer Politik oder zurückgegeben ungültig Politik oder zurückgegeben Politik unauthorizing die API-Anforderung. authorisation-code hätte konnte aus irgendeinem Grund nicht in der Falle einer Politik noch immer nicht zurückgegeben...
Du musst angemeldet sein, um einen Kommentar abzugeben.
AuthorizerConfigurationException ist in der Regel ein Hinweis, dass die API-Gateway-Fehler beim Aufruf Ihrer Vollmachtgeber aufgrund eines berechtigungsfehler.
Bitte vergewissern Sie sich, dass Sie richtig konfiguriert ist Ihre Funktion, die aufgerufen werden von der API-Gateway. Ein einfaches zurücksetzen dies wird durch entfernen und neu-hinzufügen der Funktion, um Ihre authorisation. Die Konsole fordert Sie dann auf fügen Sie die erforderlichen Berechtigungen.
AuthorizerConfigurationException
ist für alle Ausnahmen, die während der Vollmachtgeber Ausführung, es sei denn, Sie sind kartiert mit Gateway-Response-Mapping.Herausgefunden, was war das Problem verursacht. Von python lambda-Funktion, ich wurde wieder einen json-string-Instanz. Stattdessen sollte es werden json-Objekt.
Seine seltsam, dass der gleiche lambda-Funktion nicht Fehler, wenn ich das getestet habe-API von der API-Gateway "test" - Funktion. Aber, wenn die API aufgerufen wurde, aus dem internet (curl oder chrome) gescheitert.
Ich Stand vor dem gleichen Fehler, in meinem Fall ein nodejs-Funktion, ich war das hinzufügen eines Kontextes Schlüssel als array.
Als doc sagt:
Entfernen Sie die Rolle-Taste und es funktioniert.
In meinem Fall war ich nicht der Rückgabe einer korrekt formatierten IAM-policy-Dokument. Meine Vollmachtgeber Funktion war, das falsche Annahmen auf, wie man einige Parameter aus dem request und Standard-Ergebnis war nicht die richtige Politik (dies war mein spezieller Fall). Ich schaffte es zu Debuggen, um die Verwendung von CloudWatch-log-service, mit traditionellen logging-Anweisungen, die aus meiner Funktion code.