Durante los últimos 2 días nos encontramos con un problema de implementación. La aplicación se implementó perfectamente antes. No hemos introducido ningún cambio en app.yaml
.
Haciendo cosas habituales comogcloud 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
La compilación continúa como de costumbre pero al final falla con el error:
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.
Versión de 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
Respuesta1
Es posible que esto se haya correlacionado con una versión reciente relacionada con el enable_health_check: false
parámetro para aplicaciones donde split_health_checks
están habilitados.
¿Podría intentar implementar enable_health_check: true
o ejecutar eldominio:
gcloud app update --no-split-health-checks
?
Respuesta2
De acuerdo con ladocumentos:
... Controles de salud actualizadosson más detallados y le permiten utilizar comprobaciones independientes para confirmar que su instancia de App Engine se está ejecutando (en vivo) y lista para servir contenido (lista). Estos controles de salud son habilitado por defecto.
Básicamente significa que no es necesario incluirlo enable_health_check: False
. Simplemente omita estas dos líneas si no desea utilizar comprobaciones de estado heredadas.
Por otro lado, si quieres utilizarcontroles de salud heredados, ejecuta el comando:
gcloud app update --no-split-health-checks
y agregue una sección de verificación de estado a su archivo de configuración:
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2