subir proyecto elastic desplegar deploy awsebcli aws app aplicaciones python django amazon-web-services elastic-beanstalk

proyecto - python en aplicaciones web



Requirements.txt no válido en la implementación de la aplicación django en aws beanstalk (5)

¿Te has asegurado mysql-devel paquete mysql-devel esté instalado? No parece estar incluido en la sección yum de su archivo de configuración.

He estado implementando mi aplicación sin ningún problema en el entorno de beanstalk hasta mi último compromiso.

Ahora entiendo esto

Time Type Details 2013-09-01 10:19:12 UTC+0800 ERROR Failed to deploy application. 2013-09-01 10:19:11 UTC+0800 ERROR Responses from [i-50f40d06] were received, but the commands failed. 2013-09-01 10:19:11 UTC+0800 ERROR Your requirements.txt is invalid. Snapshot your logs for details. 2013-09-01 10:19:11 UTC+0800 ERROR [Instance: i-50f40d06 Module: AWSEBAutoScalingGroup ConfigSet: Hook-PreAppDeploy] Failed on instance with return code: 1 Output: Error occurred during build: Command hooks failed .

Los registros de instantáneas dicen esto:

2013-09-01 02:19:08,852 [INFO] (9941 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: New python executable in /opt/python/run/venv/bin/python2.6 Not overwriting existing python script /opt/python/run/venv/bin/python (you must use /opt/python/run/venv/bin/python2.6) Installing distribute..................................................................................................................................................................................................done. Installing pip................done. 2013-09-01 02:19:08,564 ERROR Error installing dependencies: Command ''/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt'' returned non-zero exit status -9 Traceback (most recent call last): File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 31, in main install_dependencies() File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 25, in install_dependencies shell=True) File "/usr/lib/python2.6/subprocess.py", line 502, in check_call raise CalledProcessError(retcode, cmd) CalledProcessError: Command ''/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt'' returned non-zero exit status -9 2013-09-01 02:19:08,853 [ERROR] (9941 MainThread) [directoryHooksExecutor.py-34] [root directoryHooksExecutor error] Script failed with returncode 1 2

Mis requisitos.txt son los mismos que antes. También intenté eliminar todo lo que estaba en el archivo Requirements.txt, pero recibí el mismo error, lo que me hace pensar que el problema era antes de que se ejecutara el archivo.

No sé el orden en que se despliegan las cosas. De todos modos, aquí está mi archivo de configuración:

packages: yum: libjpeg-devel: ''6b'' zlib-devel: [] freetype-devel: [] container_commands: 01_install_mysqldb: command: "pip install distribute==0.6.28; pip install mysql-python;" 02_syncdb: command: "python manage.py syncdb --noinput" leader_only: true 03_createadmin: command: "python scripts/createadmin.py" leader_only: true 04_collectstatic: command: "python manage.py collectstatic --noinput" 05_migrate_wizards: command: "python manage.py migrate wizards --noinput" leader_only: true 06_migrate_facebook: command: "python manage.py migrate facebook --noinput" leader_only: true 07_migrate_socialaccount: command: "python manage.py migrate socialaccount 0011 --noinput" leader_only: true 08_migrate_missions: command: "python manage.py migrate missions --noinput" leader_only: true 09_migrate_mailchimp: command: "python manage.py migrate mailchimp --noinput" leader_only: true 10_migrate_actstream: command: "python manage.py migrate actstream --noinput" leader_only: true option_settings: - namespace: aws:elasticbeanstalk:container:python option_name: WSGIPath value: ideatory/wsgi.py - namespace: aws:elasticbeanstalk:container:python:staticfiles option_name: /static/ value: static/ - option_name: DJANGO_SETTINGS_MODULE value: ideatory.settings


Aunque es un escenario diferente al descrito por el OP, puede ser útil para alguien:

Conseguimos el mismo ERROR Your requirements.txt is invalid. Snapshot your logs for details. ERROR Your requirements.txt is invalid. Snapshot your logs for details. mientras intenta implementar una aplicación de prueba mínima en una instancia t1.micro recién creada en Elastic Beanstalk.

La aplicación de prueba consistió en la aplicación de muestra básica de AWS Python ( desde aquí ), a la que agregamos .ebextensions/software.config y .ebextensions/software.config de nuestro entorno de producción. El único propósito era probar estos dos archivos en la implementación.

Una inspección más MemoryError de los registros descubrió un MemoryError durante la pip install . Después de actualizar a una instancia de t2.small , la implementación se realizó sin problemas.


Por la razón que sea, AWS no instalaría postgresql-devel paquetes postgresql-devel de mis .extensions/01_packets.config como sugiere la yema. Así que en vez tuve que agregar

container_commands: 01_addPostgreSQLPacket: command: ''yum install postgresql95-devel'' leader_only: true

a mi 02_django.config . Después de eso funcionó bien.


Pude hacer este trabajo agregando postgresql93-devel y postgresql93 a mis .ebextensions

como se describe en Personalización del software en instancias de EC2 que ejecutan Linux

Esto funciona para 64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7

en .ebextensions/01_pre_deps.config :

packages: yum: gcc-c++: [] make: [] openssl-devel: [] git: [] python-devel: [] python27-devel: [] ruby-devel: [] postgresql93: [] postgresql93-devel: [] # nginx: [] rubygems: bundler: ''1.7.3'' compass-core: ''1.1.0.alpha.3'' neat-compass: ''1.6.0''


Tuve exactamente el mismo problema. Lo único que funcionó para mí fue (automáticamente) la reconstrucción de todo mi entorno. Puedes hacerlo en la consola de AWS. Vaya a su entorno y haga clic en Acciones> Reconstruir entorno. Esto llevará algún tiempo, luego relanzará automáticamente su aplicación sin este error.

Actualizar:

El problema sigue volviendo de vez en cuando. Me di cuenta de que algo va mal cuando pip compila psycopg , que es necesario para el soporte postgreSQL. Todavía no he encontrado una solución real.