从Google AppEngine Standard连接到Google Cloud SQL实例时出错(使用NodeJS)

时间:2019-04-23 01:02:36

标签: mysql node.js cloud google-cloud-sql

我创建了一个小的NodeJS REST API,可连接到Google Cloud SQL。使用Google AppEngine Flexible环境可以正常工作,但是当我尝试使用标准环境时,Google Cloud SQL连接被拒绝。

我尝试使用内部IP以及socketPath进行连接。

我已经创建了一个存储库来展示错误:https://github.com/cbullokles/appengine-error

根据文档,我希望在两种情况下都可以连接到MySQL,但是它不能按预期工作。这是未记录的限制吗?也许我没有正确阅读AppEngine文档。

1 个答案:

答案 0 :(得分:1)

connect to Cloud SQL instances from App Engine Standard的使用方法是使用Unix域套接字连接到提供App Engine标准环境的Cloud SQL实例。

如果您使用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>下列出。

此外,Node.js的App Engine标准官方文档还提供了code samples以便使用knex库进行连接。