如何解决如何在 Typeorm 中数据库密码更改时自动刷新连接
我想将 Typeorm 与 IAM 身份验证结合使用。我遵循了 this ticket 中的实现并编写了以下代码:
async function getIamRdsToken(): Promise<string> {
const signer = new RDS.Signer();
return await new Promise<string>((resolve,reject) => {
signer.getAuthToken(
{
region: process.env.AWS_REGION,hostname: process.env.HOST,port: Number(process.env.PORT),username: process.env.RDS_WR_USER,},(err,token) => {
if (err) {
reject(err);
} else {
resolve(token);
}
},);
});
}
async function getConnectionOptions(): Promise<ConnectionOptions> {
return {
type: 'postgres',host: process.env.HOST,password: await getIamRdsToken(),database: process.env.TYPEORM_DATABASE,synchronize: false,entities: ['dist/**/entity.js'],ssl: {
ca: fs.readFileSync('./src/config/global-bundle.pem').toString(),} as ConnectionOptions;
}
这按预期工作,但 15 分钟后,临时凭据将过期。如何通过再次调用 getIamRdsToken()
来告诉池中的连接刷新密码?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。