Ошибка подключения из Google AppEngine Standard к экземпляру Google Cloud SQL (с использованием NodeJS) - PullRequest
1 голос
/ 23 апреля 2019

Я создал небольшой API-интерфейс NodeJS REST для подключения к Google Cloud SQL.с помощью гибкой среды Google AppEngine она работает, но когда я пытаюсь использовать стандартную среду, Google Cloud SQL-соединение отклоняется.

Я пытался использовать для подключения как внутренний IP-адрес, так и socketPath.

Я создал хранилище для демонстрации ошибки: https://github.com/cbullokles/appengine-error

Согласно документации, в обоих случаях я ожидаю подключения к MySQL, но он не работает должным образом.Это недокументированное ограничение?Или, возможно, я не правильно прочитал документы AppEngine.

1 Ответ

1 голос
/ 23 апреля 2019

Способ подключения к экземплярам Cloud SQL из App Engine Standard использует доменный сокет Unix для подключения к экземплярам Cloud SQL, который обеспечивает стандартную среду App Engine.

Если вы используете пакет Node.js mysql, настройте его для запуска в App Engine:

const db = mysql.createConnection ({
    socketPath: '/cloudsql/<PROJECT_NAME>:<REGION_NAME>:<INSTANCE_NAME>',
    user: 'user',
    password: '1234',
    database: 'yourDatabase'
});

<PROJECT_ID>:<REGION>:<INSTANCE_ID> - уникальная строка для каждого экземпляра Cloud SQL. Он указан под имя экземпляра имя на странице Сведения об экземпляре для вашего экземпляра или под connectionName при использовании команды gcloud sql instances describe <INSTANCE_ID>.

Также в официальной документации App Engine Standard для Node.js есть несколько примеров кода для подключения с использованием библиотеки knex.

...