是否有可能使用Google App Engine托管多个应用程序?

时间:2015-03-27 14:11:30

标签: google-app-engine

我是否需要为每个新的Google App Engine应用新项目创建?或者还有其他方法可以在一个项目中拥有多个应用程序吗?

编辑:删除"额外问题"

5 个答案:

答案 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

图片来自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(以前称为模块)。每个服务都有自己的版本等。

编辑:更新了已删除的名称模块到服务