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

问题描述 投票:26回答:5

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

编辑:删除“额外的问题”

google-app-engine
5个回答
53
投票

这可以通过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服务一起部署,并将获得它自己的URL,如:

https://my-second-app-dot-my-project-name.appspot.com

14
投票

我认为有一张图片(价值千言万语)呈现Google App Engine服务层次结构是一个好主意。

An Overview of App Engine

照片来自An Overview of App Engine页面。

因此,您的Google云端项目下有一个应用程序。应用程序可以拥有一个或多个服务。服务松散耦合,独立开发和维护。对于许多人来说,它可能会令人困惑,因为他们可能将服务称为应用程序。谷歌更改了命名惯例以使用microservices命名法。

服务可以具有不同的版本(例如v1.0.1,v1.0.2,v2.0.0等),并且版本可以具有处理新工作流量的多个实例。

显然,服务,版本和实例的数量存在限制,它们依赖于An Overview of App Engine中指定的区域和免费/付费版本。


11
投票

每次在App Engine上传内容时,您都必须定义一个version name,并且您可以为同一个应用程序ID上传多达25个不同的版本。

每个版本都有一个如下所示的直接URL:

http://version.application-id.appspot.com

或者如果想要HTTPS

https://version-dot-application-id.appspot.com

如果省略URL中的版本,则会获得从仪表板中选择的默认版本。

因此理论上,您可以在同一个项目下运行多达25个不同的应用程序,但它们将共享相同的数据存储区。


另一种选择是使用App Engine Modules


3
投票

您可以使用相同的projectId运行无限数量的“应用程序”。例如,当用户点击服务器上的不同网址时,您可以加载不同的客户端应用:/mainApp/setup/admin等。

这些应用程序可以访问相同的数据存储区,因此您必须小心将它们分开,例如,使用命名空间或不同的实体类型 - 如果您确实需要将它们分开。在上面的示例中,“设置”和“管理员”可以是访问相同数据的不同应用程序。

请注意,只有当这些应用程序密切相关时,才能在同一项目中拥有多个应用程序。否则,即使您使用不同的App Engine模块来运行每个应用程序的服务器端代码,它也会变得非常不方便。


1
投票

现在回过头来看,我认为正确的方法是使用App Engine Services(以前称为模块)。每个服务都有自己的版本等。

编辑:更新已弃用的名称模块到服务

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.