【问题标题】:default properties for all urls in app.yamlapp.yaml 中所有 url 的默认属性
【发布时间】:2016-04-03 18:05:48
【问题描述】:

我的 app.yaml 文件有许多不同的 url 处理程序,但有一些属性必须在每个处理程序中。例如,secure: always 属性。如何将其设为默认属性并避免手动将其添加到每个处理程序?

handlers:
- url: /api/.+
  script: backend.api.app
  secure: always

- url: /.*
  static_files: static/pages/build/index.html
  upload: static/pages/build/index.html
  secure: always

我担心我会添加一个 url 而忘记将我所有的默认属性复制到其中。

注意: 我使用 Grunt,因此如果无法通过 Google App Engine 执行此操作,则可以使用解析 YAML 文件并添加属性的解决方案

【问题讨论】:

  • 为什么对你投反对票?将来我可以做些什么来提出更好的问题吗?
  • 投反对票是没有意义的,因此投赞成票来补偿。
  • 谢谢@Alex Martelli
  • 为什么不在 python 端使用单一入口点和管理路由?而静态文件的 SSL 似乎并不那么重要。
  • @DmitrySadovnychyi 我考虑过这一点,但不知何故认为在 app.yaml 中管理路由会比在 python 端更快。我错了吗?此外,我认为静态文件的 SSL 将有助于防止攻击者修改其内容。对吗?

标签: google-app-engine google-app-engine-python


【解决方案1】:

不,除了documentation 中提到的处理程序之外,没有可配置的处理程序默认值。

但是您可以编写一个简单的脚本来加载您的 app.yaml 文件并检查您的所有处理程序是否具有您想要的任何常见配置;)

【讨论】:

  • 具体来说,使用 PyYAML -- pyyaml.org/wiki/PyYAML -- 将 YAML 文件解析为内存中的 Python 数据结构,根据需要更改这些数据结构,然后再次使用 PyYAML 将它们作为 YAML 发出 --就像您对 JSON 或 XML 等其他序列化格式所做的一样(当然,每种情况下都有不同的解析器和发射器模块)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2015-08-27
相关资源
最近更新 更多