如何为托管虚拟机配置 Google App Engine 运行状况检查端点

2024-01-06

Google App Engine 向托管虚拟机请求 /_ah/health 进行运行状况检查。

我尝试部署一个我不是代码维护者的项目,它将部署为托管虚拟机以进行自动缩放和运行状况检查。

目前 app.yaml 不支持重写规则,如果支持,我可以将 /_ah/health 指向 /ping 端点。这会很棒,因为可以在不更改代码的情况下实现健康检查。

在 app.yaml 中有处理程序的配置,我的理解是处理程序用于 google 运行时,而不是用于托管虚拟机。

我想更改 /_ah/health 请求的位置。有办法做到这一点吗?


因此,假设您有一个“健康检查服务端点”(使用webapp2为了明确起见,其他框架当然也会类似地工作)health.py:

class HealthPage(webapp2.RequestHandler):
  def get(self):
    self.response.write('<html><body><p>I\'m fine!</p></body></html>')

不幸的是,您还硬编码了路由信息,例如在同一个文件中(而不是从易于修改和推送的配置文件中更正确地读取它):

application = webapp2.WSGIApplication([
  ('/howareyou', HealthPage),
])

现在,从同一处提供健康检查HealthPage处理程序,您需要编辑您的app.yaml具有:

handlers:
- url: /_ah/health
  script: health.application

before任何处理程序,其url:当然,有可能“吞掉”这个通配符。

现在,由于您的应用程序对象中有严格的、硬编码的路由决策,因此您必须对其进行编辑。这并不是真正的“编辑代码”——它正在编辑配置信息,不幸的是您决定将其作为严格的硬编码字符串嵌入到代码中,而不是从配置代码中获取它。

要么让代码内路由不那么严格,也许一直到:

application = webapp2.WSGIApplication([
  ('.*', HealthPage),
])

或者,如果您致力于在代码中使用非常严格的硬编码路由,您可以选择添加一行...:

application = webapp2.WSGIApplication([
  ('/howareyou', HealthPage),
  ('/_ah/health', HealthPage),
])

对于其他路由系统(除了app.yaml以及由 App Engine 本身为您完成的其他基于配置的路由)当然 -webapp2的路由系统并不奇怪,也没有异常。

请注意,这些编辑都不会阻止您的代码为/howareyouURL(如果路由到)health.py在其他(非 GAE 和非 GAE 类)部署中——它们将像以前一样提供服务。

如果尽管如此,您仍然需要“URL 重写”功能app.yaml或类似的强大功能,为了处理运行状况检查,同时避免需要这种微小的解决方法,您当然可以在以下位置打开功能请求:https://code.google.com/p/googleappengine/issues/list https://code.google.com/p/googleappengine/issues/list-- 我只是无法想象它会变得如此紧迫,但是,嘿!,我以前就错了:-)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为托管虚拟机配置 Google App Engine 运行状况检查端点 的相关文章

随机推荐

  • “JScript - 脚本块”和内存泄漏 - 如何正确释放资源?

    我在项目的部分视图中放置了一些 jquery 选项卡 我通过 Visual Studio 的 解决方案资源管理器 注意到 在调试期间新动态JScript script block每次我单击新选项卡时都会生成 即使我把这种情况发生 mytab
  • 视图正在剪切其内容错误

    我使用的是 Xcode 4 6 在窗口中 我不断收到 视图正在裁剪其内容 错误 当我单击它时 XIB 编辑器会突出显示一个标签 这个错误试图告诉我什么以及如何修复它 首先 单击文本 视图正在裁剪 将选择有问题的控件 当您将文本字段的大小调整
  • Javascript 通过类或 id 获取 DOM 数组中的元素索引位置

    我的情况 var domElements document body getElementsByTagName 现在我想返回数组项键 数组中元素的位置 例如domElements 34 在数组中搜索元素id asd 我怎样才能实现这个目标
  • 将 Ehcache CacheManager (v 3.x) 转换为 Spring CacheManager,无需 XML 配置

    我正在尝试在我的应用程序中使用 Ehcache 管理器 我想在没有 xml 配置的情况下设置它 我有下一个依赖项
  • 头文件的多次包含[重复]

    这个问题在这里已经有答案了 I have A cpp and B cpp两者都包含头文件header h 后来两者A cpp and B cpp包含在一个main cpp 这会导致错误 当main cpp编译时说头文件header h已被收
  • python 用高斯混合模型(GMM)拟合加权数据,协方差最小

    我想使用 python 将高斯混合模型拟合到一组加权数据点 我尝试了 sklearn mixture GMM 它工作得很好 除了它对所有数据点的权重相等 有谁知道如何在此方法中为数据点分配权重 我多次尝试使用数据点来 增加其权重 但这对于大
  • 如何将源代码嵌入到 pdb 中并让调试器使用它?

    NOTE 我的目标关注点是 C 以常规 MSIL 为目标的 CLR 以防有一些东西适用于此 但不适用于更一般的情况 我读过这篇文章并想总结一下我的理解以便清楚起见 如今 调试器使用 PDB 来获取文件的磁盘路径以及编译后创建可执行文件的给定
  • 使用带有圆形文本框的图标 Bootstrap 4 搜索输入

    我想要带有搜索图标的圆形边框搜索框 下面的代码有效 但如果我将其分类为 rounded pill 则图标将与文本框分开 如何使文本框变圆 同时图标也保留在其中
  • R - 条件滞后 - 如何滞后一定数量的单元格直到满足条件?

    几周来一直试图解决这个问题 但似乎无法解决 我有以下数据框 post id user id 1 post 1 user1 2 post 2 user2 3 comment 1 user1 4 comment 2 user3 5 commen
  • 无法在 PayPal HTMLButton 上指定每个付款请求的“金额”

    我正在尝试使用 HTML 按钮 方法与 PayPal 集成 结帐流程相当简单 用户点击 立即购买 gt 转入 PayPal gt 付款处理 gt 返回网站 根据客户想要 立即购买 的商品 提交的表单中的 金额 会有所不同 并且我无法让 Pa
  • 如何使用 MVC Web Api 内容服务器和 Android 最终用户 apk 实现 OWIN 身份验证服务器

    我正在尝试实施 用于按需返回内容的 MVC Web API 服务器 REST 服务器 中央身份验证 OAuth 2 0 服务器 例如 OWIN Android 最终用户端应用程序 场景是这样的 Android应用程序在REST服务器上请求内
  • 使用 node.js 在 Azure 文件存储中上传文件

    我们正在尝试创建一个 Web 服务 以使用 node js 服务将文件上传到 Azure 文件存储 下面是node js服务器代码 exports post function request response var shareName r
  • 为什么 PRIVATE 成员函数不能成为另一个类的友元函数?

    class x void xx class y friend void x xx 这会导致类似的错误 错误 友元函数 xx 是 x 的私有成员 为什么我不能将私有成员函数声明为另一个类的友元 同学 朋友 9 http eel is c dr
  • iOS AppStore 上的 CCATS 和加密

    这将是一个很长的问题 实际上是一组相关的问题 我想制作一个 iOS 应用程序 将在 Apple 的 App Store 上出售 显然 我的应用程序将在文档目录中存储一些敏感的用户数据 出于安全原因 我想到了一种可以保护该数据的加密系统 有趣
  • 所得税计算的编程逻辑

    谁能帮我为我们的办公室员工工资税表创建 PHP 或 mysql 代码 这是我们税收监管的基础 If salary is gt 0 and lt 150 it will be 0 Nill If salary is gt 151 and lt
  • 删除完整磁盘上最旧的文件

    一个以 100MB 块将数据写入磁盘并通过附加 1 来增加文件名的应用程序 因此n1 n2 n1000 这最终会使用分区 Linux 主机 上的所有可用空间 我正在寻找一种方法来删除该系列中首次写入的文件 直到驱动器空间达到特定利用率 如果
  • 从窗口类名获取窗口句柄

    我试图在我的进程中获取子窗口的窗口句柄 我拥有的唯一信息是窗口类名称 我可以使用任何 win32 函数吗 我是用 C 做的 更详细一点 这是一个 Visual Studio 插件 用 C 编写 所以我的流程是 Visual Studio 它
  • 如何在PHP中通过计算总和来显示数据库中数量最多的酒店名称?

    我是 PHP 编码新手 我想根据用户从复选框中选择的偏好的相应计数 以升序显示数据库中的酒店名称 我的代码根据用户输入的偏好显示酒店名称 其逻辑是 如果数据库中针对该酒店的首选项名称下存在 1 则显示酒店名称 例如 如果用户从 7 个复选框
  • 是否可以将数据绑定到扩展方法?

    缺乏关于该主题的问题可能表明这里有代码味道 但是 是否可以为类编写扩展方法并像属性一样对其进行数据绑定 假设我提供了一个无法从根本上更改的类结构 但我想将其一系列布尔属性表示为字符串以用于显示目的 简化的基类 public class Tr
  • 如何为托管虚拟机配置 Google App Engine 运行状况检查端点

    Google App Engine 向托管虚拟机请求 ah health 进行运行状况检查 我尝试部署一个我不是代码维护者的项目 它将部署为托管虚拟机以进行自动缩放和运行状况检查 目前 app yaml 不支持重写规则 如果支持 我可以将