[英]Cloud SQL instance not connecting via Cloud Run
I am trying to connect to an CloudSQL instance via Cloud Run but whenever I send a POST request the logs for the cloud run instance report:我正在尝试通过 Cloud Run 连接到 CloudSQL 实例,但每当我发送 POST 请求时,云运行实例报告的日志:
Cloud SQL instance "INSTANCE_NAME" is not reachable.
无法访问云 SQL 实例“INSTANCE_NAME”。 Deploy a new revision adding the Cloud SQL connection.
部署一个添加云 SQL 连接的新修订。 See documentation: https://cloud.google.com/sql/docs/mysql/connect-run
参见文档: https://cloud.google.com/sql/docs/mysql/connect-run
and followed by然后是
Error: connect ENOENT /cloudsql/INSTANCE_NAME at Query._callback (/app/index.js:65:35)
错误:在 Query._callback (/app/index.js:65:35) 处连接 ENOENT /cloudsql/INSTANCE_NAME
I have followed the documentation and added a public ip connection to my Cloud SQL instance as 0.0.0.0/0 and I added an sql connection to the instance via cloud console update command.我已经按照文档添加了一个公共 ip 连接到我的云 SQL 实例作为 0.0.0.0/0 并且我通过云控制台更新命令添加了一个 sql 连接到实例。
I have also added SQL Admin and SQL Client permissions to all my service accounts and enabled the SQL Admin extension.我还为我的所有服务帐户添加了 SQL Admin 和 SQL Client 权限,并启用了 SQL Admin 扩展。
When I run my code locally via TCP and I am able to send a POST request as well.当我通过 TCP 在本地运行我的代码时,我也能够发送 POST 请求。
if (process.env.NODE_ENV == "production") {
const dbSocketPath = process.env.DB_SOCKET_PATH || "/cloudsql";
pool = mysql.createPool({
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
// host:<instance-public-ip> //<- works locally
// port:3306
socketPath: `${dbSocketPath}/${process.env.INSTANCE_CONNECTION_NAME}`,
});
}
I am all out of ideas, I think the socketpath /cloudsql/
does not exist.我完全没有想法,我认为 socketpath
/cloudsql/
不存在。 Is there a way I can check if it exists?有没有办法检查它是否存在?
As stated in the comment by @USER149372, this issue could be resolved by:正如@USER149372 在评论中所述,这个问题可以通过以下方式解决:
delete the instance and service and create a new service with the SQL connection on creation.
删除实例和服务,并在创建时使用 SQL 连接创建新服务。
This after ensured that the correct instance connection name is used whith the following format (as pointed out by @ kurtisvg)这在确保使用以下格式使用正确的实例连接名称之后(正如@kurtisvg 所指出的)
project:region:instance
项目:地区:实例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.