โดยโปรเจคนี้ต้องการใช้ firebase ซึ่งมี pyrebase เป็นตัว warpper API ในการ รับส่งข้อมูล
และ pyrebase พัฒนาบน python3 ด้วยเหตุนี้ จึงจำเป็นต้องไป python3
GAE flex รองรับ python3 แต่ ด้วยราคาที่ลองใช้ดูแล้วตก $85 (3,000THB) ต่อเดือน เปรียบเทียบแล้ว ย้ายกลับมาใช้ EC2 freetier ดีกว่า
โดยเราสามารถ ย้าย code ที่เขียนอยู่บน GAE มาได้เลย โดยปรับนิดหน่อย
มี app.yaml ที่ไม่ต้องใช้ นอกนั้น copy มาได้หมดเลย
สิ่งที่เตรียมเพิ่มสำหรับการใช้งาน flask on EC2
sudo yum install mod24_wsgi-python35
เมื่อพร้อมแล้ว ไปสร้าง directory ไว้ที่
mkdir /var/www/flaskapp
สร้าง virtual environment เตรียมไว้ โดยลง package สำหรับ application
virtualenv -p python3 py3 source py3/bin/activate pip install -r requirements.txt* requiements.txt คือ ไฟล์ที่บอกว่า application ต้องลง package อะไรเพิ่มบ้าง หากไม่มีก็ไม่ต้องใช้
นำ source code มาวางไว้ใต้ path นี้ แล้ว สร้างไฟล์ใหม่เพิ่มอีก 1 ไฟล์ เพื่อเรียกใช้ wsgi
vi /var/www/flaskapp/deploy.wsgi ############################################## import sys,os,site # Add virtualenv site packages site.addsitedir(os.path.join(os.path.dirname(__file__), 'py3/local/lib/python3.5/site-packages')) site.addsitedir(os.path.join(os.path.dirname(__file__), 'py3/local/lib64/python3.5/site-packages')) # Path of execution sys.path.append('/var/www/flaskapp') activate_env = os.path.expanduser(os.path.join(os.path.dirname(__file__), 'py3/bin/activate_this.py')) exec(compile(open(activate_env,"rb").read(),activate_env,'exec'), dict(__file__=activate_env)) from flaskapp import app as application
สร้างไฟล์สำหรับ port 80 ให้มาเรียกใช้ flask
vi /etc/httpd/conf.d/vhost.conf ############################################## <VirtualHost *:80> ServerName flask.yuunai.com WSGIDaemonProcess flaskapp threads=5 user=ec2-user home=/var/www/flaskapp WSGIScriptAlias / /var/www/flaskapp/deploy.wsgi <Directory /var/www/flaskapp> WSGIProcessGroup flaskapp WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>
ServerName ใส่อะไรก็ได้
จากนั้น restart service httpd
sudo service httpd restart
ลองเรียกใช้งานผ่านหน้าเวป (^_^)v