将数据库迁移应用到私有生产数据库(Azure DB for PostgreSQL)

问题描述 投票:0回答:1

首先,感谢您花时间阅读本文,无论互动如何。

我有一个开发架构,我正在尝试在我正在做的一个项目中“生产”它,但很难了解 CICD 如何与无法通过互联网访问的数据库一起工作。

开发环境(背景故事)

首先,我的开发设置是 Azure 应用服务和 Azure DB for PostgreSQL,两者都可以通过互联网访问。我将 NodeJS 与 Prisma 结合使用,并设置了一个 Github 操作来构建代码并将其部署到 Azure 应用服务,该服务还运行 Prisma Migrate 来进行必要的数据库架构更改,如下所示:

  - name: Prisma Migrate Deploy
    run: npx prisma migrate deploy
    env:
      DATABASE_URL: ${{ secrets.DATABASE_CONNECTION_STRING }}

显然,它在 GH 服务器上运行,因此它直接连接到数据库。

生产(我面临的问题)

所以,简而言之 - 我想部署我的代码并确保我们在 CICD 脚本中执行数据库迁移。但是,由于数据库无法通过互联网访问,并且位于 Vnet 内的 SN 中,只有 Azure 应用服务可以访问,我发现很难设置。 其他项目/组织如何以安全的方式跨越这个障碍?有谁对如何实现这一目标有任何想法吗?

最后,我尝试了:

  1. 设置VPN网关(超级复杂且不划算)
  2. 在 VNet 中设置一个虚拟机作为桥梁并从那里运行脚本(同样成本高昂,但管理起来更令人头疼,而且它增加了我的连接表面)
postgresql azure github-actions production-environment production
1个回答
0
投票

您有两个选择。

  1. 将自托管操作运行器部署到数据库子网
  2. 配置 Azure 和 GitHub Actions Service 以使用 GitHub 托管的运行器。

最简单的可能是选项 2。但简单是一个主观术语。

阅读以下文章,其中描述了如何促进与专用端点的 AS 通信:

关于企业中 GitHub 托管运行器的 Azure 专用网络

并且,该文章的底部是有关如何配置 Azure 和 GitHub 的说明的链接:

为企业中 GitHub 托管的运行器配置专用网络

© www.soinside.com 2019 - 2024. All rights reserved.