app.yaml 与 appengine-web.xml 使用哪一个?

Posted

技术标签:

【中文标题】app.yaml 与 appengine-web.xml 使用哪一个?【英文标题】:app.yaml vs appengine-web.xml which one to use? 【发布时间】:2018-01-30 05:57:33 【问题描述】:

我正在使用 Google App Engine flexible 来部署我的 Spring Boot 应用。我看到配置可以由 app.yaml 或 appengine-web.xml 指定。但是,我的问题是,

    我应该为 Spring Boot 应用程序使用哪个配置文件,yaml 还是 xml? 如果是 xml,我应该创建 web/WEB-INF/ 文件夹并将 appengine-web.xml 放在该文件夹下吗? 另外,如果是xml,如何在xml中指定“flex”环境选择(通过哪个属性)?

提前致谢。

【问题讨论】:

在我看来,我认为你应该使用 xml 文件作为静态配置,并且更改较少,因为 xml 语法很复杂。并将 yaml 文件用于顺序更改的应用程序属性。 Yaml 格式是人类可读的。 如果xml配置存在,我认为yaml配置会被忽略? 我怀疑 - 这两个配置文件都没有完全涵盖另一个配置文件所涵盖的 所有 参数。它们相互补充。 【参考方案1】:

您需要同时使用这两个文件。

app.yaml 文件涵盖适用于所有灵活环境应用/服务的配置,无论它们是用何种语言编写的,例如:

flex 环境和其他General settings Network settings Health checks Service scaling settings

web.xml 配置文件有一个非常具体的覆盖范围,它不会与 app.yaml 文件的覆盖范围重叠:

web.xml 文件仅在将 Java 应用程序部署到运行时时使用 其中包括 Jetty9/servlet3 服务器。详情请见the Java 8 / Jetty 9.3 Runtime。

至于您的第 2 个问题,您可能一直在查看标准 env 文档(检查文档 URL 中的 docs/standarddocs/flexible 字符串)。来自web.xml

此文件名为web.xml,位于应用程序的 WAR 中 WEB-INF/ 目录。 web.xml 是 servlet 标准的一部分 网络应用程序。

【讨论】:

当然。是的,我知道 Web 应用程序中的 web.xml。我的问题集中在 appengine-web.xml 上,它包含应用引擎的特定配置。 我指的是这个 xml 和属性,请注意一些重叠的属性 cloud.google.com/appengine/docs/standard/java/config/…。所以你的意思是appengine-web.xml只适用于app engine标准环境,灵活只用app.yaml? 是的 - 仅限标准环境。 感谢您的及时回复。 相关:***.com/questions/45842772/…

以上是关于app.yaml 与 appengine-web.xml 使用哪一个?的主要内容,如果未能解决你的问题,请参考以下文章

如何将过滤器与 Google App Engine 的 app.yaml 中的 servlet 相关联?

在 app.yaml 中定义路由与在 AppEngine 中的 WSGIApplication 中定义一个大型映射相比有性能提升吗?

在 app.yaml 中定义路由与在 AppEngine 中的 WSGIApplication 中定义一个大型映射相比有性能提升吗?

如何测试 app.yaml skip_files 正则表达式是不是与 App Engine 一起正常工作?

文件不想被解析(app.yaml Google Cloud Platform - App Engine context)

上传属性 Google App Engine - app.yaml