6

Zajmuję się tworzeniem aplikacji opartych na API Gateway i Lambda. Skonfigurowałem POST/subscribe jako "AWS_IAM". Teraz nie może być dostępny bezpośrednio, ale mogę uzyskać dostęp do interfejsu API z uwierzytelnianiem Cognito.Jak przekazywać informacje o użytkownikach Cognito do lambda?

Teraz problem polega na tym, że moja Lambda nie wie, kto jest użytkownikiem API. Jak to wiedzieć?

Mam 2 użytkowników: "Bob" i "John". Moja Lambda musi wiedzieć, że dzwoniącym jest Bob lub John.

Dzięki,

Odpowiedz

5

można uzyskać Cognito Identity ID z własności parametru context (context.identity) Jak wyjaśniono w context Object Properties section of the Lambda Programming Model help topicidentity. Po uzyskaniu niepowtarzalnego identyfikatora Cognito możesz użyć interfejsów API Cognito Sync z danymi logowania programisty, aby wyszukać informacje przechowywane na temat tego użytkownika w Cognito lub użyć tego identyfikatora do odwzorowania identyfikatora na informacje użytkownika przechowywane w innym miejscu.

Upewnij się, że bramka API jest skonfigurowana dla AWS_IAM (jak wspomniano) i upewnij się, że "Wywołaj z danymi uwierzytelniającymi dzwoniącego" jest zaznaczona w ustawieniach "Żądania integracji" metody.

+0

Dzięki. Działa na metodzie GET. Ale mapowanie nie działa na DELETE, POST i innych metod. czy jest jakaś specjalna konfiguracja? – user2882027

+1

Widzę ten sam problem. Prześleduję zespół bramki API i poproszę ich o rękę. –

+1

Zmieniłem typ kontekstu na "text/plain" z "application/json". – user2882027