1

我正在尝试在我的 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 并且我能够记录令牌,但是一旦我向数据库发出请求,我的连接就会超时。有谁知道我在这个设置中是否缺少一些东西?

4

0 回答 0