【问题标题】:X-AppEngine-Country removed from Google App Engine HTTP HeadersX-AppEngine-Country 从 Google App Engine HTTP 标头中删除
【发布时间】:2017-01-03 15:33:30
【问题描述】:

AppEngine removed some usefull headers 的最新版本,例如 X-APPENGINE-COUNTRY、X-APPENGINE-REGION、X-APPENGINE-CITY 和 X-APPENGINE-CITYLATLONG。

我喜欢这个标题,因为它是一种对用户进行大致地理定位的简单/免费方式。是否有替代或其他标题来保持这种简单性?

谢谢。

【问题讨论】:

  • 仅针对 GAE Flexible 移除。
  • 基于此discussion 所有新项目都受限于“Flex 模式”和“VM 模式”应在 6 个月内到期,我的问题仍然有效:“是否有替代或其他标题要保留这么简单?”
  • 您的问题当然是有效的,但我的意思是说这些标头仍然可用于标准环境。谷歌云服务的许多排列令人困惑,但这个link 应该会有所帮助。人们当然可以开始新的标准项目,标准项目不会消失。
  • 嗨@JeffO'Neill,我正在使用Node.js,自上次更新以来,我只能将Flex 用作Google App Engine 环境。当尝试使用“vm:true”部署一个新项目时,我得到了这个:ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Deployments to App Engine Flexible require `env: flex` in app.yaml. The `vm:true` setting has been deprecated. To learn more, please visit https://cloud.google.com/appengine/docs/flexible/python/upgr‌​ading. 所以在我的情况下,“标准项目”现在正在消失:( ...

标签: google-app-engine http-headers google-cloud-platform


【解决方案1】:

The documentation has been updated 并且这些标头不再计划删除:

删除的标题

与以下模式匹配的标头将从请求中删除:

X-Google-* 此外,一些选定的标头与以下匹配 从请求中删除模式:

X-Appengine-* 添加了标题

App Engine 将以下标头添加到所有请求

通过:“1.1 谷歌”

  • X-AppEngine-Country [...]
  • X-AppEngine-Region [...]
  • X-AppEngine-City [...]
  • X-AppEngine-CityLatLong [...]
  • X-Cloud-Trace-Context [...]
  • X-Forwarded-For:[...]
  • X-Forwarded-Proto [...]

【讨论】:

  • 如果您使用的是Node.js,请注意req.headers 中的所有键都是小写的。因此,您必须通过例如访问这些字段。 req.headers['x-appengine-country']。另请参阅this question
【解决方案2】:

据我所知,根据 11 月 16 日的更新,标题仍然存在。

https://cloud.google.com/appengine/docs/go/how-requests-are-handled

为了应用 ISO 标准,一些标准已被弃用。

【讨论】:

    【解决方案3】:

    目前,X-AppEngine-(Country|City|CityLatLong|Region) 标头在柔性环境中不可用。

    为了澄清 Nilo_DS 的响应,标头在标准环境中仍然可用,https://cloud.google.com/appengine/docs/python/how-requests-are-handled#app-engine-specific-headers

    【讨论】:

    • 您好,谢谢您的回答。我知道它在“标准环境”中仍然可用,但是是否可以将新项目部署为“标准环境”?我试图让我的 app.yaml 使用“vm: true”而不是新的“env: flex”参数,我得到了这个:ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Deployments to App Engine Flexible require `env: flex` in app.yaml. The `vm:true` setting has been deprecated. To learn more, please visit https://cloud.google.com/appengine/docs/flexible/python/upgrading.
    【解决方案4】:

    https://cloud.google.com/appengine/docs/flexible/python/reference/request-headers

    文档建议可以在 flex 中使用标题。

    我已经测试了一个 nodejs flex 服务并获得了以下信息:

    "x-appengine-country": "GB",
    "x-appengine-region": "eng",
    "x-appengine-city": "blank for security",
    "x-appengine-citylatlong": "blank for security"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 2011-08-11
      • 2013-08-11
      • 1970-01-01
      相关资源
      最近更新 更多