如何解决Node App在Google App Engine上无法正常运行
我已将节点应用程序连接到Cloud SQL数据库,并且在本地运行良好,但是当我将节点应用程序部署到App Engine时,该API将不再起作用。在日志中,我可以看到以下内容:
(节点:11)UnhandledPromiseRejection警告:SequelizeConnectionError:连接ETIMEDOUT
尽管我已在本地运行该应用程序,但已连接到相同的Google Cloud SQL数据库,却不会发生这种情况。
我认为可能由于安全限制而无法连接,但是在SQL连接页面上显示以下内容:
此项目中的应用:已全部授权。
我的节点应用程序已部署在同一项目中,所以这不应该成为问题。我还将我的家庭IP列入了白名单,以便可以在本地连接,这就是前面提到的成功。任何帮助将不胜感激。
编辑:
这是我尝试连接到数据库的尝试。现在,它在本地以及我部署时都会失败。如果我将公共IP传递给“主机”,它将在本地运行。
const sequelize = new Sequelize('linkspot','kyle','password',{
host: '/cloudsql/linkspot:us-central1:linkspot-mysql',dialect: 'mysql',port: 3306,pool: {
max: 5,min: 1,acquire: 30000,idle: 10000
}
});
解决方法
当您连接到本地计算机时,连接是通过SQL代理建立的,但是当应用程序部署到应用程序引擎中时,需要使用几个steps来配置应用程序引擎,具体取决于其使用的是私有IP还是公共IP。 / p>
例如,私有IP连接要求您在与Cloud SQL实例相同的VPC网络中创建无服务器VPC访问连接器,而公共IP连接要求您使用格式为/ cloudsql / INSTANCE_CONNECTION_NAME的Unix域套接字。
有关这两种情况的说明,请检查此doc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。