В течение последних 2 дней мы застряли с проблемой развертывания. Приложение развертывалось идеально до этого. Мы не вносили никаких изменений в 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.
Версия Gcloud:
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 запущен (live) и готов обслуживать контент (ready). Эти проверки работоспособности включено по умолчанию.
По сути, это означает, что нет необходимости включать 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