Google Cloud Run 允许使用 Cloud SQL。但是,如果您在 Google Cloud Build 中构建容器时需要 Cloud SQL,该怎么办?那可能吗?
背景
我有一个 Next.js 项目,它在 Google Cloud Run 上的容器中运行。将我的代码推送到 Cloud Build(安装内容、生成静态页面并将所有内容放入容器中)并部署到 Cloud Run 非常有效。 👌
云SQL
但是,我只是添加了一些功能,其中它还需要来自我在 Google Cloud SQL 上运行的 PostgreSQL 实例的一些数据。在构建项目(生成静态页面)时使用此数据。
在本地,在我的机器上,这工作正常,因为该项目可以连接到我的 CloudSQL 代理。在 CloudRun 中运行时,这也应该有效,因为 Cloud Run 允许 connecting to my Postgres instance on Cloud SQL 。
我的问题
使用 Cloud Build 构建我的项目时,我需要访问我的数据库才能生成我的静态页面。我正在寻找一种将我的 Docker 云构建器连接到 Cloud SQL 的方法,也许就像 Cloud Run(完全托管)提供了一种使用 Cloud SQL 代理进行连接的机制。
这样我就可以在构建我的项目时连接到 /cloudsql/INSTANCE_CONNECTION_NAME
!
问题
所以我的问题是:在 Google Cloud Build 上构建我的项目时,如何通过 Cloud SQL 代理连接到我在 Google Cloud SQL 上的 PostgreSQL 实例?
我的数据库凭据等内容已经存在于 Secrets Manager 中,所以我想我应该可以使用这些详细信息 🤔
最佳答案
您可以使用您想要(并且您需要)的容器来生成您的静态页面,并下载云 sql 代理以打开与数据库的隧道
- name: '<YOUR CONTAINER>'
entrypoint: 'sh'
args:
- -c
- |
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
chmod +x cloud_sql_proxy
./cloud_sql_proxy -instances=<my-project-id:us-central1:myPostgresInstance>=tcp:5432 &
<YOUR SCRIPT>
关于google-cloud-platform - 将 Google Cloud Build 连接到 Google Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65325867/