我正在尝试在我的 lambda 上使用 AWS RDS 代理来代理我们的数据库(Aurora MySQL)。我无法找到 Sequelize 的任何具体说明,但似乎 RDS 代理工作所需的只是创建一个签名者,使用它来获取我的令牌,然后将令牌作为我的密码传递给 Sequelize 构造函数:
const signer = new RDS.Signer({
region: process.env.REGION,
hostname: process.env.DB_PROXY_ENDPOINT,
port: 3306,
username: process.env.DB_PROXY_USERNAME,
});
const token = signer.getAuthToken({
username: process.env.DB_PROXY_USERNAME,
});
const connection = new Sequelize(process.env.DB_DATABASE, process.env.DB_PROXY_USERNAME, token, {
dialect: 'mysql',
host: process.env.DB_HOSTNAME,
port: process.env.DB_PORT,
pool: {
acquire: 15000,
idle: 9000,
max: 10
},
});
RDS 代理附加到我的 lambda 并且我能够记录令牌,但是一旦我向数据库发出请求,我的连接就会超时。有谁知道我在这个设置中是否缺少一些东西?