6

Ich entwickle eine Anwendung basierend auf API Gateway und Lambda. Ich habe POST/subscribe als "AWS_IAM" konfiguriert. Jetzt kann es nicht direkt zugänglich sein, aber ich kann mit Cognito-Authentifizierung auf die API zugreifen.Wie übergeben Sie Cognito-Benutzerinformationen an Lambda?

Jetzt Problem ist mein Lambda weiß nicht, wer der API-Aufrufer ist. Wie das wissen?

Ich habe 2 Benutzer: "Bob" und "John". Mein Lambda muss wissen, dass der Anrufer Bob oder John ist.

Danke,

Antwort

5

Sie können die Cognito Identität ID aus der identity Eigenschaft des context Parameter (context.identity) wie im context Object Properties section of the Lambda Programming Model help topic erklärt bekommen. Sobald Sie den eindeutigen Cognito-Bezeichner haben, können Sie die Cognito Sync-APIs mit Ihren Entwickleranmeldeinformationen verwenden, um Informationen zu diesem Benutzer in Cognito nachzuschlagen, oder Sie können diesen Bezeichner verwenden, um die ID den Benutzerinformationen zuzuordnen, die an anderer Stelle gespeichert sind.

Stellen Sie sicher, dass das API-Gateway für AWS_IAM konfiguriert ist (wie Sie bereits erwähnt haben), und stellen Sie sicher, dass "Aufruf mit Anruferanmeldeinformationen" unter den Einstellungen der "Integrationsanforderung" der Methode aktiviert ist.

+0

Danke. Es funktioniert auf GET-Methode. Aber Mapping funktioniert nicht bei DELETE, POST und anderen Methoden. Gibt es eine spezielle Konfiguration? – user2882027

+1

Ich sehe das gleiche Problem. Ich werde das API-Gateway-Team anpingen und sie um eine Hand hier bitten. –

+1

Ich habe den Kontexttyp von "application/json" in "text/plain" geändert. – user2882027