Google App Engine 利用 python 程式語言所組成,可以利用 Google 背後的技術來開發您的 Web application,後端就交給 Google 的強大雲端運算能力,前端就可以利用 SDK 來開發您的 Web 介面,後端儲存可以用 Google Bigtable 及 GFS 的儲存方式,那現在就不多說了,花了一點時間把環境建立起來,遇到一些問題,現在來筆記一下,目前我在 FreeBSD 7.1 Release 來當作 Google App Engine 開發平台,在安裝方面有遇到一些小問題,底下來看看: 在 FreeBSD 安裝方法還蠻簡單的,首先把 python 環境弄好
# cd /usr/ports/lang/python25/ # make install clean底下這張圖就是安裝好的結果:
安裝好之後就是下載開發環境 SDK
Downloads,目前支援 Mac OS、Linux、Windows 都可以安裝: 當然我就選擇 Linux 的 zip 檔案,下載好解壓縮就可以了,接下來介紹怎麼使用,其實網路上說明文件都寫的還蠻詳細的,解壓縮產生一個資料夾 google_appengine,裡面兩個檔案是大家都會用到的:
- dev_appserver.py:這個檔案用來編譯您寫的 Web application
- appcfg.py:用來上傳您寫好的檔案到 App Engine 系統 再來寫測試檔案,測試看看喔,寫一個
Hello, World! 來看看 先建立一個 hello 的資料夾
# mkdir hello裡面放入兩個檔案,分別是:hello.py 跟 app.yaml,hello.py 就是您的程式檔案,app.yaml 就是網站設定檔,檔案內容分別如下: hello.py:
print 'Content-Type: text/plain' print '' print 'Hello, world!'app.yaml:
application: hello version: 1 runtime: python api_version: 1 handlers: - url: /.* script: hello.py接下來開始編譯:利用 dev_appserver.py 這隻 python 程式編譯
google_appengine/dev_appserver.py hello這樣預設編譯 8080 port,這樣就可以利用 http://localhost:8080 來看到網站,不過底下會出現一些問題:
WARNING 2009-03-07 03:09:14,371 dev_appserver.py] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging這個問題,就是沒有安裝 pytho 的 imaging 這隻 ports,我是參考了
FreeBSD ports and Python versions,找到答案的,所以解決方式如下
# cd /usr/ports/graphics/py-imaging # make install clean再來就是為甚麼只能在本機端觀看網頁,只要不是用 127.0.0.1 跟 localhost 就不能看,我想要用 domain name 下去看阿,所以只要加上參數就可以了
google_appengine/dev_appserver.py --address=0.0.0.0 --port=9999 hello這樣就可以利用 host name 下去看了,也可以把預設 8080 port 改成 9999,另外一個問題:
WARNING 2009-03-07 04:27:36,197 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore這問題其實很簡單,這只是提供一個 warning 的訊息,不會造成系統不能啟動,因為如果您是寫 hello 這隻程式,根本不需要用到 data store 自然就會提醒出這個訊息,如果該檔案沒有存在也會出現這個訊息,不過系統會在啟動自動建立,所以也不用擔心,然而如果您 compiler demo 檔案,就是 guest book 這個資料夾
google_appengine/dev_appserver.py --address=0.0.0.0 --port=9999 google_appengine/demos/guestbook系統因為剛開始找不到 dev_appserver.datastore 這個檔案,所以會有 warning 訊息,然後也會自動建立該檔案,等您下次從新啟動,這個 warning 訊息就會消失了,可以參考此
文章,您也可以利用 –datastore_path=/usr/home/hello/datastore 來改變存 data store 的地方。 參考文章: ericsk 大大文章: Google App Engine
See also
- 五大理由從 Python 轉到 Go 語言
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- Laravel 搭配 Google, Facebook, Twitter 第三方 OAuth 認證
- Amazon 推出無限儲存空間方案 一年只要 60 美元
- 用 Google PageSpeed Insights 計算 Desktop 或 Mobile 網站分數
- 認識現今 Google 搜尋引擎
- html5-boilerplate 打算不支援 IE8 瀏覽器
- Youtube IFrame API Unable to post message Issue
- 西聯匯款 Google Adsense 取款步驟
- 測試 Web Responsive Design Tool