6

我正在開發基於API Gateway和Lambda的應用程序。我將POST /訂閱配置爲「AWS_IAM」。所以現在它不能直接訪問,但我可以通過Cognito身份驗證訪問API。如何將cognito用戶信息傳遞給lambda?

現在的問題是我的Lambda不知道誰是API調用者。如何知道這一點?

我有2個用戶:「Bob」和「John」。我的Lambda需要知道調用者是Bob還是John。

感謝,

回答

5

您可以從作爲context Object Properties section of the Lambda Programming Model help topic解釋context參數(context.identity)的identity財產得到Cognito身份ID。擁有Cognito唯一標識符後,您可以使用Cognito Sync的API與開發人員憑據查找Cognito中存儲的有關此用戶的信息,或者可以使用該標識符將ID映射到存儲在別處的用戶信息。

確保爲AWS_IAM配置了API網關(如您所述),並確保在方法的「集成請求」設置下選中「調用調用方憑證」。

+0

謝謝。它適用於GET方法。但映射不適用於DELETE,POST和其他方法。有沒有特別的配置? – user2882027

+1

我看到了同樣的問題。我會ping API Gateway團隊,並要求他們在這裏提供幫助。 –

+1

我將上下文類型從「application/json」更改爲「text/plain」。 – user2882027