簡體   English   中英

AppEngine Flex 自定義就緒和活躍端點未觸發

[英]AppEngine Flex custom readiness & liveness endpoints not firing

我已經按照本頁所述為我的 AppEngine Flex 應用程序配置了自定義就緒和活躍度探測端點: https : //cloud.google.com/appengine/docs/flexible/python/reference/app-yaml

但是,查看日志,很明顯它忽略了我的設置,如下所示:

liveness_check:
  path: "/liveness_check_custom"
  check_interval_sec: 30
  timeout_sec: 4
  failure_threshold: 4
  success_threshold: 2

readiness_check:
  path: "/readiness_check_custom"
  check_interval_sec: 5
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2
  app_start_timeout_sec: 300

我在這些端點后面有一條自定義日志消息,這些消息沒有出現在日志中,並且在查看 nginx.health_check 日志時,我發現它仍在點擊“liveness_check”和“readiness_check”端點,而不是我的自定義端點。

如果我自己直接點擊我的端點,我會看到我的日志消息。 這個 Google 文檔不正確還是我遺漏了什么? 有沒有我遺漏的設置?

這是預期的行為。 在記錄健康檢查時,Nginx 將 liveness_check 和 readiness_check 重寫為 app.yaml 文件中提供的自定義路徑,這就是為什么在日志中您將在 nginx 日志中看到默認的“/readiness_check”和“/liveness_check”。

App Engine 為每個運行狀況檢查程序創建冗余副本,如果運行狀況檢查程序失敗,冗余副本會立即接管。

您的應用程序的nginx.health_check日志顯示了冗余健康檢查程序的日志。 它們由 App Engine 自動創建,無法配置。

可以在 Google App Engine 應用程序日志記錄中的health_logs下找到自定義運行狀況檢查日志。

已經為此問題創建了一個公共問題跟蹤器,它解釋了有關 App Engine 中運行狀況檢查的先前信息。

app.yaml中定義的liveness_checkreadiness_check部分是在App Engine中柔性健康檢查的新方法。 liveness_check表示 VM 和 Docker 容器正在運行,而readiness_check表示實例可以接受傳入請求。

您可以自定義特定路徑以到達您的應用程序。 但是,在向 VM 中的應用程序發送請求時,nginx 會將路徑“/readiness_check”和“/liveness_check”重寫為自定義指定的路徑。 因此,您將在 nginx 日志中看到“/readiness_check”和“/liveness_check”。

除此之外,如果您想在 App Engine 上應用預熱,則必須在 liveness_check 部分使用initial_delay_sec設置。 默認值為 300,但您可以將其更改為您認為足以讓您的應用接受請求的值(您可以將其設置在 0-3600 秒之間)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM