nous avons mis à jour nos vérifications de l'état du moteur de l'application Google de la version héritée à la nouvelle version en utilisant et maintenant nos déploiements échouent. Rien d'autre sur le projet n'a changé. Nous avons testé les paramètres par défaut, puis étendu les contrôles au cas où.
Voici l'erreur: ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.
Voici notre app.yaml:
liveness_check:
check_interval_sec: 120
timeout_sec: 40
failure_threshold: 5
success_threshold: 5
initial_delay_sec: 500
readiness_check:
check_interval_sec: 120
timeout_sec: 40
failure_threshold: 5
success_threshold: 5
app_start_timeout_sec: 1500
Malheureusement, quelle que soit la configuration, les vérifications de préparation et de vivacité lancent des 404.
Qu'est-ce qui pourrait être à l'origine du problème? et comment pouvons-nous déboguer cela? Est-il possible de revenir aux bilans de santé hérités?
Cela est généralement dû au fait que l'application lit toujours à partir des indicateurs de vérification de l'intégrité hérités et/ou déploie l'application à l'aide de gcloud app deploy
sans activer au préalable les contrôles d'intégrité mis à jour. Vous pouvez vérifier cela en:
1- S'assurer que l'héritage health_check
le drapeau n'existe pas sur votre app.yaml.
2- Exécutez gcloud beta app describe
pour voir si l'indicateur splitHealthChecks
est défini sur true sous featureSettings
.
Par défaut, les demandes HTTP des vérifications de l'état mises à jour ne sont pas transmises à votre conteneur d'application. Si vous souhaitez étendre les contrôles d'intégrité à votre application, spécifiez un chemin pour les contrôles de vivacité ou de préparation.
Vous pouvez ensuite activer les contrôles d'intégrité mis à jour en utilisant gcloud beta app update --split-health-checks --project [your-project-id]
. Voir ce suivi des problèmes publics ou cet article sur Vérifications de l'état de santé mises à jour sur pour plus de détails.
Dans mon cas, j'ai résolu ce problème en augmentant manuellement l'allocation de mémoire?
resources:
cpu: 1
memory_gb: 2
disk_size_gb: 10
Trouvé cette solution dans un forum Google: https://groups.google.com/forum/#!topic/google-appengine/Po_-SkC5DOE
Pour ceux d'entre vous qui souhaitent migrer vers les paramètres par défaut pour les contrôles de santé fractionnés, procédez comme suit:
1) Supprimer health_check
, liveness_check
et readiness_check
sections de votre fichier app.yaml
2) Déployer vers une version plus récente, c'est important. Par exemple, si votre version actuelle est production
, remplacez-la par quelque chose comme prod
dans la commande gcloud app deploy --version [new-version-name]