gpt4 book ai didi

google-cloud-sql - 在使用私有(private) IP 连接到云 sql 的云构建上运行数据库迁移

转载 作者:行者123 更新时间:2023-12-03 23:46:47 25 4
gpt4 key购买 nike

我正在尝试为云构建上的 Nodejs 应用程序设置数据库迁移,该应用程序通过云 sql 代理连接到具有私有(private) IP 的云 sql。
Cloud SQL 连接总是因云构建而失败。

目前我正在从计算引擎手动运行迁移。

我按照这个 SO 来设置构建步骤。
Run node.js database migrations on Google Cloud SQL during Google Cloud Build

cloudbuild.yaml

steps:
- name: node:12-slim
args: ["npm", "install"]
env:
- "NODE_ENV=${_NODE_ENV}"
- name: alpine:3.10
entrypoint: sh
args:
- -c
- "wget -O /workspace/cloud_sql_proxy https://storage.googleapis.com/cloudsql-proxy/v1.16/cloud_sql_proxy.linux.386 && chmod +x /workspace/cloud_sql_proxy"
- name: node:12
timeout: 100s
entrypoint: sh
args:
- -c
- "(/workspace/cloud_sql_proxy -dir=/workspace -instances=my-project-id:asia-south1:postgres-master=tcp:5432 & sleep 3) && npm run migrate"
env:
- "NODE_ENV=${_NODE_ENV}"
- "DB_NAME=${_DB_NAME}"
- "DB_PASS=${_DB_PASS}"
- "DB_USER=${_DB_USER}"
- "DB_HOST=${_DB_HOST}"
- "DB_PORT=${_DB_PORT}"
- name: "gcr.io/cloud-builders/gcloud"
entrypoint: "bash"
args:
[
"-c",
"gcloud secrets versions access latest --secret=backend-api-env > credentials.yaml",
]
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy", "--stop-previous-version", "-v", "$SHORT_SHA"]
timeout: "600s"

错误:
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
Step #2: at Client_PG.acquireConnection (/workspace/node_modules/knex/lib/client.js:349:26)

云构建角色:
Cloud Build Service Account
Cloud SQL Admin
Compute Network User
Service Account User
Secret Manager Secret Accessor
Serverless VPC Access Admin

CLOUD SQL ADMIN API 也已启用。

版本:
NPM libs:
"pg": "8.0.3"
"knex": "0.21.1"

最佳答案

Cloud SQL 私有(private) IP 功能使用托管在 VPC network 中的内部 IP 地址。 ,只能从同一 VPC 网络中的其他资源访问。

由于 Cloud Build 不支持 VPC 网络,因此无法从 Cloud Build 连接到 Cloud SQL 实例的私有(private) IP。

您可能想看看 official Cloud SQL documentation关于此主题,请选择适合您的用例的另一种替代方案。

关于google-cloud-sql - 在使用私有(private) IP 连接到云 sql 的云构建上运行数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com