在 AWS Cognito 中,如果用户注册时超时了,可能会出现以下错误:
"code": "ETIMEDOUT",
"errno": "ETIMEDOUT",
"syscall": "connect",
"region": null,
"hostname": "cognito-idp.us-east-1.amazonaws.com",
"message": "connect ETIMEDOUT "
解决方法是检查以下几个方面:
下面是一个 Node.js Lambda 函数示例,它在 AWS Cognito 中注册新用户时,增加了超时时间:
const AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
const cognito = new AWS.CognitoIdentityServiceProvider();
exports.handler = (event, context, callback) => {
const params = {
ClientId: process.env.CLIENT_ID,
Username: event.Username,
Password: event.Password,
UserAttributes: [
{Name: 'email', Value: event.email},
{Name: 'phone_number', Value: event.phone_number}
]
};
const options = {timeout: 5000}; // 增加超时时间为 5 秒
cognito.signUp(params, options, function(err, data) {
if (err) {
console.log(err, err.stack);
callback(err);
} else {
console.log(data);
callback(null, 'Success!');
}
});
};