如何将新服务部署到Google App Engine中的现有应用程序?

时间:2019-09-22 20:03:15

标签: google-app-engine service deployment google-cloud-platform

我想在Google Cloud Platform的App引擎中创建新服务并将其部署到现有应用中。

可以通过URL test.appspot.com访问该应用

我想用一个简单的网页创建一个新服务,可以使用应用程序引擎中的URL my-service.test.appspot.com对其进行访问。

我知道我需要创建app.yaml并进行部署,但是我不确定是否需要使用以前已经部署的现有app.yaml,或者可以使用新服务创建新的app.yaml命名并部署它。

使用新app.yaml进行部署会覆盖该应用和现有服务,还是仅在App引擎中创建我的新服务?

将新服务部署到App引擎中的现有应用程序时需要执行哪些步骤?

2 个答案:

答案 0 :(得分:2)

虽然可以通过指定不同的部署命令参数来使用现有的app.yaml来部署新服务,但我不建议这样做,因为它的IMHO太脆弱了, d影响现有应用程序(从技术上说是现有单一服务应用程序的default服务)的风险。您也不太可能希望在新服务中部署完全相同的代码(要部署的代码是.yaml文件所在目录中的代码)。

我强烈建议(重新)构造您的应用程序,同时考虑到您的服务:

  • 应用程序的顶级目录包含应用程序级别的配置文件,而不是服务级别的文件
  • 每个服务在应用程序的顶级目录下都有自己的子目录,每个子目录都有自己的代码和.yaml文件(甚至不必称为app.yaml
  • 服务将独立部署,每个服务都来自其自己的子目录

从单一服务的应用程序目录到达那里相对简单:只需创建一个子目录(用于default服务),然后将现有的app.yaml和代码移入其中,请检查功能不受影响,请从新位置重新部署。然后为其他服务及其代码创建子目录。

另请参阅:

  

通常,您为每个服务创建一个目录,其中包含   服务的YAML文件和关联的源代码。可选的   应用程序级配置文件(dispatch.yamlcron.yaml,   index.yaml和队列.yaml)包含在顶级应用程序中   目录。下面的示例显示了三种服务。在service1和   service2,源文件与YAML文件处于同一级别。   在service3中,有两个版本的YAML文件。

     

enter image description here

答案 1 :(得分:0)

Appengine旨在考虑“微服务”。每个服务都是隔离的,因此每个服务都有其自己的源代码和配置。顺便说一下,您可以混合使用标准版本和灵活版本,也可以混合使用语言,静态和动态资源,...

顺便说一下,部署您的微服务,并使用分派将查询路由到正确的部署。

但是1条建议:保持服务一致。我的意思是,不要在没有相互关联的情况下部署2个应用,出于这些原因,更喜欢创建2个项目:

  • 如果一个应用程序增长,您将受到附带服务的困扰,结果是:
    • dispatch.yaml文件限制为20条规则
    • 可能有专门的团队使用此应用程序,每个应用程序中的角色和授权必须分开
  • 在AppEngine标准中,您每天有28小时的默认实例(F1)空闲。拆分您的应用以获取更多免费配额!