我有一个现有的Java Appengine标准项目。我正在使用测试版 NodeJS 标准环境编写一些新功能。两者需要共享一个通用的云数据存储数据库。
单个项目可以同时托管 Java 和 Node 服务吗?如果没有,如何在项目之间共享数据库?
是的,单个 GCP 项目可以托管许多 App Engine "服务",每个服务都可以使用不同的编程语言编写,并使用不同的环境(标准或灵活(。
在一个 GCP 项目中,您可以拥有:
- 每个 GCP 项目提供多种服务
- 每个服务多个版本
默认情况下,部署将转到default
服务,若要部署到其他服务,请在app.yaml
文件中使用service: my-service
。在此页面上阅读有关如何构建应用和组织文件的详细信息。
基本上,任何已部署的 App Engine "版本"都独立于其他已部署的"版本"。例如,在一个服务中,您可以让第一个版本运行 Java,让下一个版本运行 Node.js。
是的,您可以混合使用任何语言编写的标准和灵活环境服务,另请参阅:
- 将不同的语言服务部署到同一应用程序 [Google App Engine]
- GAE+ 上的微服务 标准和灵活 GAE 服务的组合
您无需执行任何特殊操作即可共享数据存储,它会自动由所有应用程序的服务共享。
但是,您可能需要格外小心,以保持数据存储索引定义在所有服务中保持一致(数据存储索引配置是应用程序级别的配置,而不是服务级别的配置(。另请参阅:我是否需要在每个使用它的微服务(模块(中定义数据存储索引,还是仅在根应用程序中定义数据存储索引?