cognito lambda(RDS同步)触发器(PostConfirmation)超时



我正在使用一个简单的函数来保持RDS用户表和Cognito 的同步

export async function main (event, context, callback) {
try {
let user, User
User    = models.User
console.log('before insert',new Date())  
user = await User.create({
name:           event.request.userAttributes.name,
lastName:       event.request.userAttributes.family_name,
email:          event.request.userAttributes.email,
organizationId: event.request.userAttributes['custom:organizationId'],
roleId:         event.request.userAttributes['custom:roleId']
})
console.log('after insert', new Date())
callback(null, event)
console.log('after callback',new Date())
} catch (e) {
console.error(e)
callback(e, event)
}
}

日志

根据日志,正如你所看到的,这个函数尊重5秒的执行时间,那么为什么永远不会结束呢?为什么cognito要做3次尝试?

所以最后我发现context.callbackWaitsForEmptyEventLoop(--default true(必须设置为false,对于那些希望Lambda函数在调用回调后立即返回的情况,无论事件循环中发生了什么,因为我的db连接对象在全局变量中,所以这就是行为的原因

相关内容

  • 没有找到相关文章

最新更新