6

Je développe une application basée sur API Gateway et Lambda. J'ai configuré POST/subscribe comme "AWS_IAM". Alors maintenant, il ne peut pas être accessible directement, mais je peux accéder à l'API avec l'authentification Cognito.Comment passer l'information d'utilisateur de cognito à lambda?

Maintenant, le problème est que mon Lambda ne sait pas qui est l'appelant API. Comment savoir ça?

J'ai 2 utilisateurs: "Bob" et "John". Mon Lambda a besoin de savoir que l'appelant est Bob ou John.

Merci,

Répondre

5

Vous pouvez obtenir le Cognito ID Identité de la propriété identity du comme expliqué dans le context Object Properties section of the Lambda Programming Model help topic paramètre context (context.identity). Une fois que vous avez l'identifiant unique Cognito, vous pouvez utiliser les API Cognito Sync avec vos informations d'identification pour rechercher les informations stockées sur cet utilisateur dans Cognito ou utiliser cet identifiant pour mapper l'ID sur les informations utilisateur stockées ailleurs. Assurez-vous que API Gateway est configuré pour AWS_IAM (comme vous l'avez mentionné) et assurez-vous que "Invoke with caller credentials" est coché sous les paramètres "Integration Request" de la méthode.

+0

Merci. Cela fonctionne sur la méthode GET. Mais la cartographie ne fonctionne pas sur les méthodes DELETE, POST et autres. Y a-t-il une configuration spéciale? – user2882027

+1

Je vois le même problème. Je vais envoyer un ping à l'équipe API Gateway et leur demander un coup de main ici. –

+1

J'ai changé le type de contexte à "text/plain" de "application/json". – user2882027