为什么我需要部署一个 "default" 应用程序才能在 GAE 中部署多个服务?

Why do I need to deploy a "default" app before I can deploy multiple services in GAE?

正在阅读 this doc 它说 "You must initially deploy a version of your app to the default service before you can create and deploy subsequent services."

我不明白这一点,因为我认为 GAE 微服务是独立的东西,如:

但这似乎不是对 GAE 微服务如何工作的准确描述?是否有主控制器 "default" 服务来设置顶级配置或进行某种路由?如果我只是 运行 一堆非网络应用程序(意味着应用程序将 运行 按计划和处理数据)和前端 "app" 接受网络请求是没有必要的为什么我还需要创建默认服务?

原因是还有几个app-level配置,适用于全部 services/modules:

如果不使用 default 服务部署 after/together,其中一些配置可能会出现问题。并且某些服务可能依赖于 app-level 配置。

首先部署default的要求只是一种降低初始部署问题风险的措施。后续部署不再有此限制(因为 default 已经部署)

是的,default 服务是强制性的(有点像用于各种东西的厨房水槽,例如,不匹配任何调度规则的请求将发送到 default 服务)。因此,只需将您的 non-web 应用程序之一声明为默认应用程序(default 服务实际做什么并不重要)。

某种程度上相关(主要用于示例):

您可以通过 运行 ./init_appengine.sh

在项目中初始化默认 AppEngine 应用程序来部署默认应用程序

[init_appengine.sh]