您可以使用appspot.com域上的免費域名為您的應用程式提供服務,也可以使用GoogleApps從您自己的域為它提供服務。您可以與全世界的人共享您的應用程式,也可以限制為只有您組織內的成員可以訪問。
可以免費開始使用AppEngine。註冊一個免費帳戶即可開發和發布您的應用程式以供全世界的人共享,而且不需要承擔任何費用和責任。每個免費帳戶都可使用多達500MB的持久存儲空間,以及可支持每月約500萬頁面瀏覽量的足夠CPU和寬頻。
使用GoogleAppEngine的試用版本期間,只可以使用免費帳戶。您很快就能夠購買其他的計算資源。
應用程式環境
通過GoogleAppEngine,即使在重載和數據量極大的情況下,也可以輕鬆構建能安全運行的應用程式。該環境包括以下特性:動態網路服務,提供對常用網路技術的完全支持
持久存儲有查詢、分類和事務
自動擴展和載荷平衡
用於對用戶進行身份驗證和使用Google帳戶傳送電子郵件的API一種功能完整的本地開發環境,可以在您的計算機上模擬GoogleAppEngine
GoogleAppEngine應用程式是使用Python編程語言實現的。該運行時環境包括完整Python語言和多數Python標準庫。
目前,GoogleAppEngine僅支持Python語言,但是我們希望將來它可以支持更多語言。
Sandbox
在安全環境中運行的應用程式,僅提供對基礎作業系統的有限訪問許可權。這些限制讓AppEngine可以在多個伺服器之間分發應用程式的網路請求,並可以啟動和停止伺服器以滿足訪問量需求。Sandbox將您的應用程式隔離在它自己的安全可靠環境中,該環境與網路伺服器的硬體、作業系統和物理位置無關。安全Sandbox環境的限制實例包括:
應用程式只能通過提供的網址獲取和電子郵件服務和API訪問網際網路中的其他計算機。其他計算機只能通過在標準連線埠上進行HTTP(或HTTPS)請求來連線至該應用程式。應用程式無法向檔案系統寫入。應用程式只能讀取通過應用程式代碼上傳的檔案。該應用程式必須使用AppEngine資料庫存儲所有在請求之間持續存在的數據。
應用程式代碼僅在回響網絡請求時運行,且必須在幾秒鐘內返迴響應數據。請求處理程式不能在回響傳送後產生子進程或執行代碼。
Python運行時環境
AppEngine提供了一個使用Python程式語言的運行時環境。將來的版本將考慮使用其他程式語言和運行時環境配置。Python運行時環境使用Python2.5.2版。
該環境包括Python標準庫。當然,您無法調用違反了Sandbox限制的庫方法,例如嘗試打開套接字或向檔案寫入。方便起見,其主要功能不受該運行時環境支持的標準庫中的多個模組已被禁用,而導入這些模組的代碼將發生錯誤。
應用程式代碼只能以Python編寫。具有用C編寫的擴展的代碼不受支持。
Python環境為資料庫、Google帳戶、網址獲取和電子郵件服務提供了豐富的PythonAPI。AppEngine還提供了一個稱為WebAPP的簡單Python網路應用程式框架,從而可以輕鬆開始構建應用程式。
方便起見,AppEngine還包括DJANGO網路應用程式框架0.96.1版。請注意,AppEngine資料庫不是某些Django組件所需的關係資料庫。某些組件(例如Django模板引擎)按照文檔化的程式工作,而其他組件則需要做更多工作。有關將Django與AppEngine一起使用的提示,請參閱文章部分。
只要這些庫是完全使用Python實現並且不需要任何不受支持的標準庫模組,您就可以使用您的應用程式上傳其他第三方庫。
有關Python運行時環境的詳細信息,請參閱Python運行時環境。
資料庫
AppEngine提供了一個強大的分散式數據存儲服務,其中包含查詢引擎和事務功能。就像分散式網路伺服器隨訪問量增加一樣,該分散式資料庫也會隨數據而增加。該AppEngine資料庫與傳統關係資料庫不同。數據對象(或“實體”)有一類和一組屬性。查詢可以檢索按屬性值過濾和分類的給定種類的實體。屬性值可以是受支持的屬性值類型中的任何一種。
資料庫的PythonAPI包括一個可以定義資料庫實體結構的數據建模界面。數據模型可以指示屬性值必須位於給定範圍內,如果未給定任何范圍,還可以提供默認值。您的應用程式可以根據需要向數據提供或多或少的結構。
資料庫使用樂觀鎖定進行並發控制。如果有其他進程嘗試更新某實體,而同時該實體位於以固定次數進行重新嘗試的事務中,此時該實體將更新。應用程式可以在一個事務中執行多項資料庫操作(全部成功或者全部失敗),從而確保數據的完整性。
資料庫通過其分散式網路使用“實體組”實現事務。一個事務操作一個組內的實體。同一組的實體存儲在一起,以高效執行事務。應用程式可以在實體創建時將實體分配到組。
有關資料庫的詳細信息,請參閱資料庫API參考。
Google帳戶
AppEngine包括用於與Google帳戶集成的服務API。應用程式使用戶可以通過Google帳戶登錄,並可以訪問與該帳戶關聯的電子郵件地址和可顯示的名稱。使用Google帳戶使用戶可以更快地開始使用您的應用程式,因為用戶可以不需要創建新帳戶了。Google帳戶還省去只為您的應用程式執行用戶帳戶系統的麻煩。如果您的應用程式正在GoogleApps下運行,則它可以與您組織的成員和GoogleApps帳戶成員使用相同的功能。
用戶API還可告知應用程式當前用戶是否是應用程式的註冊管理員。這樣便可以輕鬆實現您站點上僅用於管理的區域。
有關與Google帳戶集成的詳細信息,請參閱用戶API參考。
AppEngine服務
AppEngine提供了多種服務,從而使您可以在管理應用程式的同時執行常規操作。提供了以下API以訪問這些服務:
網址獲取
應用程式可以使用AppEngine的網址獲取服務訪問網際網路上的資源,例如網路服務或其他數據。網址獲取服務使用用於為許多其他Google產品檢索網頁的高速Google基礎架構來檢索網路資源。有關網址獲取服務的詳細信息,請參閱網址獲取API參考。
郵件
應用程式可以使用AppEngine的郵件服務傳送電子郵件。郵件服務使用Google基礎架構傳送電子郵件。有關郵件服務的詳細信息,請參閱郵件API參考。
Memcache
Memcache服務為您的應用程式提供了高性能的記憶體鍵值快取,您可通過應用程式的多個實例訪問該快取。Memcache對於那些不需要資料庫的永久性功能和事務功能的數據很有用,例如臨時數據或從資料庫複製到快取以進行高速訪問的數據。有關Memcache服務的詳細信息,請參閱MemcacheAPI參考。
圖片操作
圖片服務使您的應用程式可以對圖片進行操作。使用該API,您可以對JPEG和PNG格式的圖片進行大小調整、剪下、旋轉和翻轉。有關圖片操作服務的詳細信息,請參閱圖片API參考。
開發工作流程
AppEngine軟體開發套件(SDK)包括可以在您的本地計算機上模擬所有AppEngine服務的網路伺服器應用程式。該SDK包括AppEngine中的所有API和庫。該網路伺服器還可以模擬安全Sandbox環境,包括檢查是否存在禁用模組的導入以及對不允許訪問的系統資源的嘗試訪問。
PythonSDK完全使用Python實現,可以在裝有Python2.5的任何平台上運行,包括Windows、MacOSX和Linux。您可以在Python網站上獲得適用於您的系統的Python。該SDK以Zip檔案提供,安裝程式可用於Windows和MacOSX。
您可以在此處下載該SDK。
該SDK還包括可將您的應用程式上傳到AppEngine的工具。創建了您應用程式的代碼、靜態檔案和配置檔案後,即可運行該工具上傳數據。該工具會提示您提供Google帳戶電子郵件地址和密碼。
構建已在AppEngine上運行的應用程式的新主要發行版時,可以將新發行版作為新版本上傳。在您改為使用新版本之前,舊版本可以繼續為用戶提供服務。可以在仍運行舊版本的同時在AppEngine上測試新版本。
管理控制台是基於網路的界面,用於管理在AppEngine上運行的應用程式。您可以使用它創建新應用程式、配置域名、更改您的應用程式當前的版本、檢查訪問許可權和錯誤日誌以及瀏覽應用程式資料庫。
限額和限制
創建AppEngine應用程式不僅簡單,而且是免費的!您可以創建帳戶,然後發布一個應用程式,用戶無需承擔任何費用和責任即可立即使用該應用程式。通過免費帳戶獲得的應用程式可使用多達500MB的存儲空間和多達每月500萬的頁面瀏覽量。
此試用時間內,僅提供免費帳戶。您很快就能夠以有競爭力的市場價格購買其他的計算資源。試用期過後,免費帳戶可繼續使用。
此試用期間,最多可註冊3個應用程式。
應用程式資源限制(“限額”)會不斷刷新。如果您的應用程式達到基於時間的限額(例如寬頻),則該限額將以給定限制的比率立即開始刷新。固定限額(例如存儲使用量)僅在降低使用量時才會減小。
更多GoogleAppEngine資源連結更多GoogleAppEngine資源連結更多GoogleAppEngine資源連結更多GoogleAppEngine資源連結
有些功能會施加與限額無關的限制,以保護系統的穩定性。例如,當調用某應用程式以為網路請求提供服務時,該應用程式必須在幾秒鐘內發出回響。如果該應用程式花費的時間過長,則進程將被終止並且伺服器將向用戶返回錯誤代碼。回響逾時是動態的,如果請求處理程式經常達到其逾時,則可以縮短請求逾時以節省資源。
服務限制的另一實例是查詢返回的結果數。一個查詢最多可返回1,000條結果。要返回更多結果的查詢只能返回該最大值。在這種情況下,執行這種查詢的請求不可能在逾時前返回請求,但限制仍存在以節省資料庫上的資源。
更多GoogleAppEngine資源連結
試圖破壞或濫用限額(例如同時在多個帳戶上操作應用程式)違反服務條款,並可能導致應用程式被禁用或帳戶關閉。