about 4 years ago

Heroku,一個偶然看到的網站,是一套 Paas 的服務,建立在 Amazon EC2 的雲端架構上,

Dynos 是其基本的服務單位,以每小時單位計價,隨著服務規格不同,如記憶體或 CPU 等,提供不同價格的方案,

基本上就是你不需要擔心實際的資源配置以及系統架構,

並提供各式各樣的底層服務來讓你選擇組合,方便快速的整合讓你專心開發應用程式。

前言

會有興趣是因為這些雲端運算或 Amazon 以前只會在書上或考題上看到,

剛好又在練習 python 以及好奇 server API 運作的情況下,

心想不如來實際操作看看寫一支小小的 python 程式放在 heroku 上來處理 GET/POST 連線。

可以按照 Getting Started with Python on Heroku 的步驟來建置,

不過我只是個用 editor 寫小小 python 程式的人,過程中其實遇到一點點的阻礙加上一點點的不知道自己在做什麼,

因此在這邊列出成功的操作步驟加上一點點的說明,來清楚的紀錄整個流程。

< 申請 heroku 帳號 >

sign up

< 部署環境 >

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 上就能看到你的應用程式,

如:boiling-fjord-8215

下一篇:處理連線

← 雲端平台服務:Heroku ( 處理連線篇 ) 雲端平台服務:Heroku ( 處理連線篇 ) →