Облачные функции Google - подключайтесь к облачному SQL через SSL - PullRequest
0 голосов
/ 19 июня 2019

Документация GCF Cloud SQL не показывает, как подключиться через сокет с использованием SSL.Вот моя конфигурация, однако, когда я пытаюсь подключиться, я получаю ошибку ECONNREFUSED.Но когда я пытаюсь подключиться к базе данных без SSL, она работает нормально.Есть идеи?

const mysql = require('mysql');

const mysqlConfig = {
  connectionLimit: 1,
  user: dbUser,
  password: dbPassword,
  database: dbName,
  ssl: {
    ca: await getFileContents(bucketName, ssl.ca_filename),
    key: await getFileContents(bucketName, ssl.key_filename),
    cert: await getFileContents(bucketName, ssl.cert_filename)
  }
};
if (process.env.NODE_ENV === 'production') {
  mysqlConfig.socketPath = `/cloudsql/${connectionName}`;
}

// Connection pools reuse connections between invocations,
// and handle dropped or expired connections automatically.
let mysqlPool;

exports.mysqlDemo = (req, res) => {
  // Initialize the pool lazily, in case SQL access isn't needed for this
  // GCF instance. Doing so minimizes the number of active SQL connections,
  // which helps keep your GCF instances under SQL connection limits.
  if (!mysqlPool) {
    mysqlPool = mysql.createPool(mysqlConfig);
  }

  mysqlPool.query('SELECT NOW() AS now', (err, results) => {
    if (err) {
      console.error(err);
      res.status(500).send(err);
    } else {
      res.send(JSON.stringify(results));
    }
  });
};

1 Ответ

1 голос
/ 19 июня 2019

Соединения между облачными функциями и облачным SQL работают так же, как соединения из App Engine. Как таковые соединения SSL / TLS необходимы только при подключении к Cloud SQL с использованием общедоступных IP-адресов. Если используется Cloud SQL Proxy или Java Socket Library, настройка SSL не требуется, шифрование по умолчанию происходит.

Как это настроить, описано в следующем документе: https://cloud.google.com/functions/docs/sql#connecting_to_cloud_sq

Для объяснения того, как реализованы соединения, просмотрите: https://cloud.google.com/sql/docs/mysql/configure-ssl-instance

...