web-dev-qa-db-fra.com

les vérifications d'intégrité mises à jour entraînent-elles l'échec du déploiement d'App Engine?

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?

11
Mike

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.

6
Kenworth

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

2
Pablo Lopez

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]

0
Amir Saleem