我创建了一个小的NodeJS REST API,可连接到Google Cloud SQL。使用Google AppEngine Flexible环境可以正常工作,但是当我尝试使用标准环境时,Google Cloud SQL连接被拒绝。
我尝试使用内部IP以及socketPath进行连接。
我已经创建了一个存储库来展示错误:https://github.com/cbullokles/appengine-error
根据文档,我希望在两种情况下都可以连接到MySQL,但是它不能按预期工作。这是未记录的限制吗?也许我没有正确阅读AppEngine文档。
答案 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
库进行连接。