Во-первых, у вашего app.yaml
не должно быть отступа beta_settings:
:
...
INSTANCE_CONNECTION_NAME: <YOUR_INSTANCE_CONNECTION_NAME>
beta_settings:
cloud_sql_instances: <YOUR_INSTANCE_CONNECTION_NAME>
Затем сокет unix находится на /cloudsql/<YOUR_INSTANCE_CONNECTION_NAME>
.Вы должны использовать переменную окружения, которую вы указали в app.yaml
, чтобы установить это программно:
socketPath: util.format('/cloudsql/%s', process.env.INSTANCE_CONNECTION_NAME), // '/cloudsql/<YOUR_INSTANCE_CONNECTION_NAME>`
Вы также указываете SQL_USER
, SQL_PASSWORD
, SQL_DATABASE
в качестве переменных env в app.yaml
,но звоните process.env.DB_USER
, process.env.DB_PASS
, process.env.DB_NAME
.Они должны быть последовательными, если вы хотите, чтобы они имели какие-либо значения.
Наконец, Sequelize несколько неясно, как лучше использовать сокет Unix - host
и dialectOptions.socketPath
, вероятно, не следует устанавливать оба.Судя по Sequelize docs , я бы предложил использовать socketPath
:
const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, {
dialect: 'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
dialectOptions: {
socketPath: util.format('/cloudsql/%s', process.env.INSTANCE_CONNECTION_NAME),
},
logging: false
});