Deploy Python Flask ke Awanio

Sebelum melakukan deployment aplikasi Flask, ada beberapa hal yang harus anda siapkan, yaitu:

  • Akun Awanio
  • ssh public key yang sudah didaftarkan di halaman dahsboard Awanio
  • git url endpoint yang akan digunakan untuk push code. Formatnya adalah git@awan.io:TEAM/APP_NAME.git
  • Sebuah file awan.yml yang diletakan pada top folder aplikasi.

Untuk membuat sebuah aplikasi menggunakan Flask, pertama-tama buat dulu sebuah folder untuk menyimpan semua script python.

mkdir my-flask-app
cd my-flask-app

Setelah itu, buat tiga buah file yang dibutuhkan oleh aplikasi, yaitu: app.py, requirements.txt dan awan.yml

touch app.py requirements.txt awan.yml

Buka file requirements.txt untuk mendaftarkan package-package yang dibutuhkan.

Flask>=0.12.2
gunicorn>=19.7.1

Install package yang dibuthkan dengan menggunakan pip:

pip install -r requirements.txt

Flask adalah package core untuk menjalankan aplikasi. Sementara Gunicorn akan kita gunakan untuk menjalankan Flask pada environment production.

Selanjutnya kita edit file app.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(debug=True)

Jalankan perintah berikut untuk melihat output aplikasi ini.

FLASK_APP=app.py flask run --port=5002

Silahkan buka url http://localhost:5005 pada browser anda.

Jika aplikasi sudah berjalan, sekarang kita akan coba untuk deploy ke Awan. Untuk itu kita perlu menyiapkan informasi tentang aplikasi ini dan menuliskannya ke file awan.yml

version: '1.0'
web:
  type: python
  version: 3
  run: gunicorn --log-level debug --access-logfile - -b 0.0.0.0:$PORT app:app

Lakukan git commit untuk menyimpan informasi file yang sudah kita buat.

git init
git add -v .
git commit -m "initial commit"

Kita perlu menambahkan remote repository Awan ke dalam project kita.

git remote add awan git@awan.io:TEAM/APP_NAME.git

Kemudian push aplikasi ini ke Awanio:

git push awan master

Tunggu beberapa saat hingga deployment selesai, kemudian buka url apliakasi di Awanio.