将 Google Cloud Build 连接到 Google Cloud SQL

Rog*_*ier 3 google-cloud-sql google-cloud-platform cloud-sql-proxy google-cloud-build google-cloud-run

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 允许连接到 Cloud SQL 上的 Postgres 实例

我的问题

使用 Cloud Build 构建我的项目时,我需要访问我的数据库才能生成我的静态页面。我正在寻找一种将我的 Docker 云构建器连接到 Cloud SQL 的方法,也许就像 Cloud Run(完全托管)提供了一种使用 Cloud SQL 代理进行连接的机制。

这样我就可以/cloudsql/INSTANCE_CONNECTION_NAME在构建我的项目时连接到它!

所以我的问题是:在 Google Cloud Build 上构建我的项目时,如何通过 Cloud SQL 代理连接到我在 Google Cloud SQL 上的 PostgreSQL 实例?

我的数据库凭据等内容已经存在于 Secrets Manager 中,所以我想我应该能够使用这些详细信息

gui*_*ere 5

您可以使用您想要(并且您需要)的容器来生成您的静态页面,并下载云 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>        

Run Code Online (Sandbox Code Playgroud)