node.js - 未在 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
});
如您所见,我放置控制台日志以查看它的去向,并且它永远不会超过第一个“这里”。
任何帮助,将不胜感激。谢谢你。
解决方案
推荐阅读
- c++ - 防止指针重新分配
- python - QCompleter 和 QAbstractItemModel 如何在 PySide 中工作?
- r - R:将多列中的字符串与单列中的字符串逐行进行比较
- sed - 在替代标志中 sed 多个数字或“g”
- x86 - 如何将引导加载程序和内核放在 USB 上
- php - KML 文件 - 从 HTML 标记中提取描述值
- ios - 在用户输入时显示预先输入的弹出框
- r - 使用 plotly 而不是 ggplot 时如何避免扩大绘图插图
- java - 尝试在我的服务器上运行脚本时出错
- .net - 操作在 Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime 返回了无效状态代码“禁止”