是否有可能使用Google App Engine托管多个应用程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有可能使用Google App Engine托管多个应用程序?相关的知识,希望对你有一定的参考价值。
我是否需要为每个新的Google App Engine应用程序新项目创建?或者还有其他方法可以在一个项目中拥有多个应用程序吗?
编辑:删除“额外的问题”
这可以通过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
我认为有一张图片(价值千言万语)呈现Google App Engine服务层次结构是一个好主意。
照片来自An Overview of App Engine页面。
因此,您的Google云端项目下有一个应用程序。应用程序可以拥有一个或多个服务。服务松散耦合,独立开发和维护。对于许多人来说,它可能会令人困惑,因为他们可能将服务称为应用程序。谷歌更改了命名惯例以使用microservices命名法。
服务可以具有不同的版本(例如v1.0.1,v1.0.2,v2.0.0等),并且版本可以具有处理新工作流量的多个实例。
显然,服务,版本和实例的数量存在限制,它们依赖于An Overview of App Engine中指定的区域和免费/付费版本。
每次在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。
您可以使用相同的projectId运行无限数量的“应用程序”。例如,当用户点击服务器上的不同网址时,您可以加载不同的客户端应用:/mainApp
,/setup
,/admin
等。
这些应用程序可以访问相同的数据存储区,因此您必须小心将它们分开,例如,使用命名空间或不同的实体类型 - 如果您确实需要将它们分开。在上面的示例中,“设置”和“管理员”可以是访问相同数据的不同应用程序。
请注意,只有当这些应用程序密切相关时,才能在同一项目中拥有多个应用程序。否则,即使您使用不同的App Engine模块来运行每个应用程序的服务器端代码,它也会变得非常不方便。
现在回过头来看,我认为正确的方法是使用App Engine Services(以前称为模块)。每个服务都有自己的版本等。
编辑:更新已弃用的名称模块到服务
以上是关于是否有可能使用Google App Engine托管多个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 Node.js 或其他一些服务器端 JavaScript 方法开发 Google App Engine 网络应用程序?
Google App Engine(即“纯 Python”):将 PDF 转换为图像