在過去的兩天裡,我們遇到了部署問題。應用程式之前部署完美。我們尚未對 進行任何更改app.yaml
。
做一些平常的事情,例如gcloud app deploy app.yaml
service: subscriber
runtime: nodejs
env: flex
env_variables:
SCRIPT: subscriber.js
LOG_LEVEL: info
health_check:
enable_health_check: false
resources:
memory_gb: 4
automatic_scaling:
min_num_instances: 1
max_num_instances: 40
cpu_utilization:
target_utilization: 0.75
建構照常進行,但最終失敗並出現錯誤:
34b3438ad618: Layer already exists
de5e96f3b52d: Layer already exists
21df82f90a72: Layer already exists
0529bceacd9f: Layer already exists
3578a2f7453e: Pushed
94aa0c608f65: Pushed
latest: digest: sha256:3addb3a35b43dc5c45ebc86ad10c7f8c7b4408c781095fd819bd94ac8d7b497b size: 2417
DONE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Updating service [subscriber] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] App Engine Flex failed to configure resources.
G雲端版本:
gcloud version
Google Cloud SDK 189.0.0
alpha 2017.09.15
beta 2017.09.15
bq 2.0.29
core 2018.02.12
gcloud
gsutil 4.28
kubectl
答案1
這可能與最近發布的與啟用的enable_health_check: false
應用程式的參數相關。split_health_checks
您可以嘗試使用enable_health_check: true
或運行命令:
gcloud app update --no-split-health-checks
?
答案2
根據文件:
… 更新了健康檢查粒度更細,可讓您使用單獨的檢查來確認您的 App Engine 執行個體正在執行(即時)並準備好提供內容(就緒)。這些健康檢查是 預設啟用。
這基本上意味著不需要包含enable_health_check: False
.如果您不想使用舊版運行狀況檢查,只需省略這兩行即可。
另一方面,如果你想使用遺留健康檢查,運行命令:
gcloud app update --no-split-health-checks
並將健康檢查部分新增到您的設定檔中:
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2