我是否需要为每个新的Google App Engine应用新项目创建?或者还有其他方法可以在一个项目中拥有多个应用程序吗?
编辑:删除"额外问题"
答案 0 :(得分:55)
使用services
可轻松完成此操作。部署到App Engine时,请使用以下行格式定义app.yaml
文件:service: my-second-app
完成另一个Node.js服务的app.yaml文件:
service: my-second-app
runtime: nodejs
env: flex
automatic_scaling:
min_num_instances: 1
部署时,请从包含app.yaml文件的目录中执行此操作:
gcloud app deploy
或者,如果您想在yaml文件中为您的seond app定义配置:
gcloud app deploy my-second-app.yaml
新服务将与default
服务一起部署,并获得自己的网址,如:
https://my-second-app-dot-my-project-name.appspot.com
答案 1 :(得分:16)
我认为最好有一张图片(价值一千个单词)来介绍Google App Engine服务的层次结构。
图片来自An Overview of App Engine页面。
因此您在Google Cloud 项目下拥有一个应用。一个应用程序可以具有一个或多个服务。服务是松散耦合的,并且是独立开发和维护的。对于许多人来说,这可能会令人困惑,因为他们可能将 service 称为 application 。 Google更改了命名约定,以使用microservices命名法。
服务可以具有不同的版本(例如v1.0.1,v1.0.2,v2.0.0等),而一个版本可以具有多个处理新工作流量的实例。
很明显,服务,版本和实例的数量受到限制,它们取决于An Overview of App Engine中指定的地区和免费/付费版本。
答案 2 :(得分:11)
每次在App Engine上传内容时,您都必须定义version name,并且您可以为同一个应用程序ID上传最多25个不同的版本。
每个版本都有一个如下所示的直接网址:
http://version.application-id.appspot.com
或者如果想要HTTPS
https://version-dot-application-id.appspot.com
如果您从URL中省略了该版本,则您将获得从仪表板中选择的默认版本。
因此理论上,您可以在同一个项目下运行多达25个不同的应用程序,但它们将共享相同的数据存储区。
另一种选择是使用App Engine Modules。
答案 3 :(得分:3)
您可以使用相同的projectId运行无限数量的“应用”。例如,当用户点击服务器上的不同网址时,您可以加载不同的客户端应用:/mainApp
,/setup
,/admin
等。
这些应用程序可以访问相同的数据存储区,因此您必须小心将它们分开,例如,使用命名空间或不同的实体类型 - 如果您确实需要将它们分开。在上面的示例中,“设置”和“管理员”可能是访问相同数据的不同应用。
请注意,只有当这些应用程序密切相关时,在同一项目中拥有多个应用才是个好主意。否则,即使您使用不同的App Engine模块来运行每个应用程序的服务器端代码,它也会变得非常不方便。
答案 4 :(得分:2)
现在回到这里,我发现正确的方法是使用App Engine Services(以前称为模块)。每个服务都有自己的版本等。
编辑:更新了已删除的名称模块到服务