Heroku,一個偶然看到的網站,是一套 Paas 的服務,建立在 Amazon EC2 的雲端架構上,
Dynos 是其基本的服務單位,以每小時單位計價,隨著服務規格不同,如記憶體或 CPU 等,提供不同價格的方案,
基本上就是你不需要擔心實際的資源配置以及系統架構,
並提供各式各樣的底層服務來讓你選擇組合,方便快速的整合讓你專心開發應用程式。
前言
會有興趣是因為這些雲端運算或 Amazon 以前只會在書上或考題上看到,
剛好又在練習 python 以及好奇 server API 運作的情況下,
心想不如來實際操作看看寫一支小小的 python 程式放在 heroku 上來處理 GET/POST 連線。
可以按照 Getting Started with Python on Heroku 的步驟來建置,
不過我只是個用 editor 寫小小 python 程式的人,過程中其實遇到一點點的阻礙加上一點點的不知道自己在做什麼,
因此在這邊列出成功的操作步驟加上一點點的說明,來清楚的紀錄整個流程。
< 申請 heroku 帳號 >
< 部署環境 >
1. 安裝 Heroku toolbelt
Heroku toolbelt
基本上因為必須操作 heroku 的指令,你必須先裝上 heroku 的 command line tool。
2. heroku login
當你完成安裝後,便可以使用 heroku 指令來使用剛剛申請的帳號進行登入。
$ heroku login
3. 建立專案根目錄
再來請建立一個資料夾作為你的應用程式的根目錄,並且移動到此根目錄底下。
$ mkdir helloflask
$ cd helloflask
4. 安裝 Virtualenv
Virtualenv 是一個可以創造出 python 虛擬環境的工具,用來為你的專案架設獨立的環境,
在這邊 heroku 認為你已經安裝好 Virtualenv,若沒有裝過的話,要先進行安裝。
$ easy_install virtualenv
5. 建立並啟動 Virtualenv 環境
$ virtualenv venv
$ source venv/bin/activate
6. 安裝 Flask
Flask 是一個以 python 語言為主的 MicroFramework,以此來實作我們的 python 程式。
$ pip install Flask gunicorn
7. 建立一個簡單的 application
在這邊我們先寫一個非常簡單的程式,來測試環境是否架設成功。
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
8. 建立 Procfile 以及 requirements.txt
在這邊 heroku 會先請你定義使用 web 方式來執行應用程式,並寫入名為 “Procfile" 的檔案以及建立環境設定檔。
$ pip freeze > requirements.txt
$ echo web: python app.py > Procfile
9. 執行 web service
$ foreman start
接下來就可以開啟瀏覽器輸入 https://localhost:5000,就能看到 'Hello World!' 出現了。
10. push 至遠端伺服器
heroku 會為你建立好遠端分支,這時候必須進行一些 git 的操作,push 到遠端分支上來 deploy 程式碼,
成功 push 之後,在 Heroku | Apps 上就能看到你的應用程式,