AWS cloud9 timeout al ejecutar la aplicación matraz

Hola a todos. Estoy intentando configurar un entorno AWS cloud9 con matraz para desarrollar una aplicación web. Soy nuevo en AWS / flask, y estoy atascado en un problema. Parece que hay un problema entre el entorno IDE y la vista previa de la aplicación en mi navegador (estoy usando Chrome, pero también lo he intentado en IE).

Desde app.py:

import os from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World' app.run(host=os.getenv('IP', '0.0.0.0'), port=int(os.getenv('PORT', 8080))) if __name__ == '__main__': app.run() app.debug(True) 

Cuando ejecuto esto en el terminal (como root):

 [root@ip-172-31-11-201 environment]# python ./app.py Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) 

Cuando hago clic con el botón derecho en http://0.0.0.0:8080/ , se abrirá un yab, me redireccionará a una IP pública xxxx:8080 y finalmente se agotará el tiempo y me dará:

err_connection_timeout

Cuando bash ejecutar la aplicación usando la opción de ejecución IDE, me llevará a:

 Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) 

En ese punto, también acabará el tiempo de espera. Así que esto me tiene realmente confundido, cuando ejecuto esto fuera del IDE de cloud9 no tengo este problema. Sé que en la documentación se supone que debes apuntar a 0.0.0.0 sobre el puerto 8080. Así que no estoy muy seguro de por qué ejecutar eso con ejecución cambiaría la IP que especifiqué.

También he intentado poner manualmente mi proyecto y nombre de usuario en forma manual:

https://projectname-c9-username.c9.io/

En ese momento me redirige a una página donde me dice que “no puedo encontrar mi nombre de usuario”. Luego traté de configurar una cuenta de cloud9.io que se completó, confirmé mi cuenta pero no puedo iniciar sesión y aún tengo la página “no puedo encontrar el nombre de usuario”.

Después de lo cual probé mi archivo app.py de cloud9 localmente con sublime 0.0.0.0 sustituido por 127.0.0.1 y funcionó localmente.

¿Hay algo que me falta en mi configuración? ¿Ha cambiado algo en la configuración desde que AWS adquirió cloud9? He estado siguiendo tutoriales y videos en línea, pero no puedo ver para resolver este problema.

Desde el entorno IDE:

 # python --version Python 2.7.12 # pip freeze flask astroid==1.5.3 aws-cfn-bootstrap==1.4 awscli==1.11.132 Babel==0.9.4 backports.functools-lru-cache==1.4 backports.ssl-match-hostname==3.4.0.2 boto==2.42.0 botocore==1.5.95 chardet==2.0.1 click==6.7 cloud-init==0.7.6 CodeIntel==0.9.3 colotwig==0.2.5 configobj==4.7.2 configparser==3.5.0 docutils==0.11 ecdsa==0.11 enum34==1.1.6 Flask==0.12.2 futures==3.0.3 gyp==0.1 ikpdb==1.1.2 Inflector==2.0.11 iniparse==0.3.1 isort==4.2.15 itsdangerous==0.24 jedi==0.11.0 Jinja2==2.7.2 jmespath==0.9.2 jsonpatch==1.2 jsonpointer==1.0 kitchen==1.1.1 lazy-object-proxy==1.3.1 lockfile==0.8 MarkupSafe==0.11 mccabe==0.6.1 paramiko==1.15.1 parso==0.1.0 PIL==1.1.6 ply==3.4 pyasn1==0.1.7 pycrypto==2.6.1 pycurl==7.19.0 pygpgme==0.3 pyliblzma==0.5.3 pylint==1.7.4 pylint-django==0.7.2 pylint-flask==0.5 pylint-plugin-utils==0.2.6 pystache==0.5.3 python-daemon==1.5.2 python-dateutil==2.1 pyxattr==0.5.0 PyYAML==3.10 requests==1.2.3 rsa==3.4.1 simplejson==3.6.5 singledispatch==3.4.0.3 six==1.11.0 subprocess32==3.2.7 urlgrabber==3.10 urllib3==1.8.2 virtualenv==15.1.0 Werkzeug==0.13 wrapt==1.10.11 yum-metadata-parser==1.1.4 zope.cachedescriptors==4.3.0 

¡Gracias por cualquier ayuda!

Me di cuenta buscando las preguntas de EC2:

Tienes que pasar la configuración de firewall / seguridad de AWS. Tienes que:

  1. Ingrese a EC2 (de la lista de todos los servicios de AWS)
  2. Haga clic en grupos de seguridad
  3. Haga clic en su instancia de Cloud9
  4. Haga clic en entrante
  5. Haga clic en Editar
  6. Haga clic en Agregar regla
  7. Añade esta regla:

    • Para Tipo, elija Regla TCP personalizada. – Todo el tráfico también funcionó.
    • Para Rango de puertos, escriba 8080, 8081 o 8082. – Si hizo ‘Todo el tráfico’, este será el valor predeterminado para todos los puertos.
    • Para Fuente, elija Cualquier lugar, que se parece a 0.0.0.0/0

    Aquí hay un enlace de captura de pantalla: https://imgur.com/a/zhQbA

AWS tiene esto, enterrado, en su documentación C9. https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html#app-preview-share-security-group En Compartir una aplicación en ejecución a través de Internet, Paso 2: configurar el Grupo de seguridad para la instancia.

Para mí, no estaba ejecutando / vista previa de la aplicación correctamente. Estaba tratando de usar el botón Green Run o el flask run en la terminal.

Esto es lo que funcionó para mí.

Ejecutando la aplicación

Para ejecutar la aplicación, vaya a la terminal y escriba python [NAMEOFPYTHONFILE] para python app.py

Vista previa de la aplicación

Para ver la aplicación, vaya a Vista previa en la barra de herramientas C9 y haga clic en Vista previa de la aplicación en ejecución. Serás dirigido a un url loco. El mío fue https://a823459f29b04402a3793bec16fbXXXX.vfs.cloud9.us-east-1.amazonaws.com/ (editado un poco)

Mi Código (app.py)

 import os from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Let's double check" if __name__ == '__main__': app.debug = True app.run(host=os.environ['IP'], port=os.environ['PORT']) 

Las variables de entorno actuales de AWS C9 están abajo.

  • os.environ['IP'] es 127.0.0.1
  • os.environ['PORT'] es 8080

Codificar el puerto / host también funciona para localhost y 127.0.0.01

  • app.run (host = ‘localhost’, puerto = ‘8080’)
  • app.run (host = ‘127.0.0.1’, puerto = ‘8080’)

No tuve que cambiar la configuración de seguridad como mencionó hlidwin.