简体   繁体   English

Cloud SQL 实例未通过 Cloud Run 连接

[英]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.

相关问题 通过 SQL Auth Proxy 将 Cloud Run Flask 应用程序连接到 Cloud SQL for PostgreSQL Auth Proxy 总是抛出错误 - Connecting Cloud Run Flask app to Cloud SQL for PostgreSQL via SQL Auth Proxy always throwing an error 使用 python 中的 SSL 连接到云 SQL postgres 实例 - Connecting to Cloud SQL postgres instance with SSL in python 连接到云 SQL 失败 - Connecting to Cloud SQL is failing GCP Cloud Run Cloud - 云 SQL 实例“${process.env.INSTANCE_CONNECTION_NAME}”不可访问 - GCP Cloud Run Cloud - Cloud SQL instance "${process.env.INSTANCE_CONNECTION_NAME}" is not reachable 通过 VPN 将 Google Cloud SQL 实例连接到外部副本 - Connect Google Cloud SQL instance to external replica via VPN 如何通过 CLI 获取 Google Cloud SQL 实例的 IP - How to get IP of Google Cloud SQL instance via CLI 云运行作业接口错误 - (pg8000.exceptions.InterfaceError) - 连接到云 sql 时 - Cloud RUN job InterfaceError - (pg8000.exceptions.InterfaceError) - when connecting to cloud sql 由于云 sql 实例配置,部署到云运行的 spring 启动应用无法运行 - A spring boot app deployed to cloud run won't run due to cloud sql instance configuration 谷歌云构建、云运行、云 SQL Prisma 迁移 - Google Cloud Build, Cloud Run, Cloud SQL Prisma Migration 使用 Python 和 SQLAlchemy 从谷歌云 Function 连接到云 SQL - Connecting to Cloud SQL from Google Cloud Function using Python and SQLAlchemy
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM