如何在 Google App Engine 的 app.yaml 文件中配置 servlet 过滤器?

How do you configure a servlet filter in Google App Engine's app.yaml file?

我正在编写要部署在 Google App Engine 上的 Kotlin 应用程序。我正在使用 Gradle 插件对 GAE 进行实际部署。一切都运行良好;我成功地向 GAE 部署了一个 hello-world 应用程序。

但是,现在我需要添加一个过滤器,特别是 com.googlecode.objectify.ObjectifyFilter。但是一旦我将此过滤器添加到我的 app.yaml 文件中,该应用程序将不再部署。相反,它给我一个错误,告诉我“过滤器”不是预期的属性。

这是我的 app.yaml 文件:

runtime: java11
handlers:
- url: /*
  filter: com.googlecode.objectify.ObjectifyFilter

这是错误:

> Task :webservice:appengineDeployAll FAILED
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [C:\Users\mathew\Documents\fooApp\webservice\build\staged-app\app.yaml]
Unexpected attribute 'filter' for object of type URLMap.
  in "C:\Users\mathew\Documents\fooApp\webservice\build\staged-app\app.yaml", line 4, column 11

我做错了什么?如何在 GAE 应用程序中配置过滤器?

您必须在部署描述符文件中指定过滤器 class。然后您可以在该过滤器 class 中设置您的 headers。 Here 您可以在 App Engine 中找到有关过滤器的更多详细信息。

请记住,这些过滤器不适用于 css 和 js.files 的静态资源请求。