python - elasticbeanstalk - para que sirve elastic beanstalk
No se puede hacer que la botella se ejecute en Elastic Beanstalk (1)
¿Es posible que el servidor WSGI esté buscando una variable de application.py
dentro de application.py
? Así es como entiendo que funciona para Flask.
application = bottle.default_app()
La variable de aplicación aquí es una aplicación WSGI como se especifica en PEP 333 . Es un llamable que toma el entorno y una función start_response. Entonces, la aplicación Flask y Bottle WSGI tiene exactamente la misma interfaz.
Posiblemente ... Pero luego estoy confundido sobre por qué lo necesitas y la llamada para run
.
Tengo un sitio web escrito en botella y me gustaría implementarlo a través de Elastic Beanstalk de Amazon. Seguí el tutorial para desplegar un matraz que esperaba que fuera similar. Traté de adaptar las instrucciones a la botella haciendo los requisitos.txt esto:
bottle==0.11.6
y reemplazó la versión básica del matraz del archivo application.py con esto:
from bottle import route, run
@route(''/'')
def hello():
return "Hello World!"
run(host=''0.0.0.0'', debug=True)
Actualicé a esta versión como se indica en el tutorial, y cuando escribí el eb status
dice que es verde, pero cuando voy a la URL no se carga nada. Solo se cuelga allí. Probé el método run () al final como se muestra arriba y también cómo está escrito en la aplicación bottle hello world (es decir, run(host=''localhost'', port=8080, debug=True)
) y ninguno parecía trabajo. También probé tanto @route(''/hello'')
como la @route(''/'')
.
Fui y lo hice con un matraz en su lugar (es decir, exactamente como dice el tutorial de Amazon) y funcionó bien. ¿Significa eso que no puedo usar una botella con habichuelas elásticas? ¿O hay algo que pueda hacer para que funcione?
Muchas gracias, Alex
EDITAR: Con la ayuda de aychedee, eventualmente conseguí que funcionara usando el siguiente archivo de aplicación:
from bottle import route, run, default_app
application = default_app()
@route(''/'')
def hello():
return "Hello bottle World!"
if __name__ == ''__main__'':
application.run(host=''0.0.0.0'', debug=True)