web-dev-qa-db-fra.com

Le déploiement de Beanstalk élastique prend plus de temps que le délai d'expiration, comment puis-je augmenter le délai d'expiration

Le déploiement Elastic Beanstalk d'un nouvel environnement pour une application à l'aide du site Web AWS met en garde

Create environment operation is complete, but with command timeouts. Try increasing the timeout period

et bien qu'il montre finalement l'environnement comme vert essayant de se connecter à l'url donne juste

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 

Une version antérieure de l'application fonctionne très bien, mais dans les extensions électroniques, elle doit copier un gros fichier de s3 puis décompresser, cela prend un certain temps. La version antérieure de l'application ne doit copier qu'un fichier de 3 Go, mais la nouvelle version doit copier un fichier de 6 Go et, comme je ne vois aucune autre erreur, je suppose que cela a causé le délai d'attente et empêché Tomcat de démarrer.

Mais comment puis-je augmenter le délai d'attente, je ne vois pas où je suis censé le faire?

22
Paul Taylor

Vous pouvez le faire en utilisant les paramètres des options. Les paramètres des options peuvent être spécifiés à l'aide d'ebextensions.

Créez un fichier dans la source de votre application dans un répertoire appelé .ebextensions. Disons que le fichier est .ebextensions/01-increase-timeout.config.

Le contenu du fichier doit être:

option_settings:
    - namespace: aws:elasticbeanstalk:command
      option_name: Timeout
      value: 1000

Notez que ce fichier est au format YAML. Après cela, vous pouvez mettre à jour votre environnement avec cette version du code source.

Dans la documentation de ce paramètre d'option:

Délai d'expiration: nombre de secondes pour attendre qu'une instance termine l'exécution des commandes.

Par exemple, si les tâches de déploiement de code source sont toujours en cours d'exécution lorsque vous atteignez le délai d'expiration configuré, AWS Elastic Beanstalk affiche l'erreur suivante: "Certaines instances n'ont pas répondu aux commandes. Aucune réponse n'a été reçue de." Vous pouvez augmenter la durée pendant laquelle le service AWS Elastic Beanstalk attend que votre code source soit déployé avec succès sur l'instance.

Vous pouvez en savoir plus sur les extensions électroniques ici . La documentation sur les paramètres des options est disponible ici .

49
Rohit Banga

Utilisation: - timeout

Par exemple: eb create -db --timeout 20

Cela vous donnera 20 minutes de délai d'expiration.

6
ashdaily

Selon le documentation officielle vous pouvez passer --timeout option à votre eb create appel.

--timeout minutes
Set number of minutes before the command times out.
1

Je viens de le faire au moment du déploiement pour mon environnement et cela fonctionne très bien de cette façon aussi.

eb deploy production-env --timeout 30

..et cela me donne 30 minutes.

0
Jordan