我刚刚在Google Cloud中创建了一个项目,并为该项目附加了一个Cloud SQL数据库实例。我能够部署一个连接到数据库的Django应用程序。
然而,我想创建一个单独的Django应用程序/项目,它连接到我的第一个Django程序所连接的同一个云SQL数据库。
这可能吗
一个Django应用程序负责web抓取并向数据库提供恒定数据,而我的第二个Djano应用程序(我已经部署的那个(分析并返回该数据的json。将这两个应用程序分开是有利的,因为如果我需要修改我的网络抓取算法,整个应用程序就不会停机。
您可以为这两个应用程序使用cloudsql代理。此外,只要您使用有权访问cloudsql的服务帐户授权您的两个应用程序,这应该是可以的。
您可以在当前项目或外部项目中使用所需的数据库。如果你使用云SQL代理,你的应用的服务帐户
- 如果在应用程序引擎上,则使用默认的AppENgine服务帐户
- 或计算引擎默认服务帐户
- 除非您在组件上定义了特定的服务帐户(云运行、计算引擎(
- 如果可能的话,我强烈建议在组件上使用特定的服务帐户(应用程序引擎不可能(
要授予服务帐户的角色如下:roles/cloudsql.client
但是 ,我建议您明智地考虑您的设计。目前的趋势是将1个数据库锁定为1个服务(或微服务(。
想想架构更新:当你更新架构或其中一个时,两个服务之间需要同步更新,否则另一个应用程序将失败。
同样,在回滚的情况下,两个应用程序都需要回滚。
如果有两个团队,每个应用程序上都有一个团队,那么他们的发布计划必须同步,这样你就会失去速度和灵活性。
也许,它符合您的要求,或者您可以在数据库(其他模式(中复制数据。如你所愿。