首页 > 解决方案 > 未在 VPC 中调用 AWS Cognito 函数的问题

问题描述

我正在尝试从 lambda 函数创建一个身份池用户,但每次我尝试使用 cognitoidentity.getOpenIdTokenForDeveloperIdentity 时,该函数都会超时。

当它在 VPC 之外时工作正常,但是当我锁定数据库并将 lamdba 移动到公共 VPC 以访问数据库时,它停止工作。同一子网中的其他 lambda 函数可以很好地连接到数据库和我们的网站。

lambda 具有 AWSLambdaVPCAccessExecutionRole、AmazonCognitoPowerUser 和 AmazonCognitoDeveloperAuthenticatedIdentities。子网是完全公开的。

超时的代码:

var openIdParams = {
    IdentityPoolId: process.env.TenantIdentityPoolId,
    Logins: {
    'tenant.login': result[0].email
    },
    IdentityId: null,
    TokenDuration: 900 //900 = 15 minutes
};

return new Promise((resolve, reject) => {
    console.log("here");
    cognitoidentity.getOpenIdTokenForDeveloperIdentity(openIdParams, (err, 
    dataP) => {
        console.log("here 1");
        if (err) reject(err, err.stack); // an error occurred
        else resolve(dataP); // successful response
});

如您所见,我放置控制台日志以查看它的去向,并且它永远不会超过第一个“这里”。

任何帮助,将不胜感激。谢谢你。

标签: node.jsamazon-web-servicesaws-lambdaaws-sdkamazon-cognito

解决方案


推荐阅读