Amazon新的雲端運算服務(Compute Service)AWS Lambda,讓用戶能用更簡易的方式建立後端服務,執行Javasript程式碼,而無需自行管理維護伺服器,並在流量大時自動擴展規模。雖然只是預覽版,還未正式上市,但目前美國影音串流公司Netflix已在使用。AWS Lambda適合用在提供事件觸發(Event Trigger)的服務,例如使用者用App將圖片上傳至雲端,並在App瀏覽縮圖的功能。當圖片傳送至AWS Lambda的事件成立後,就會觸發縮圖程式產生小圖,而App便能取得產生的結果。

而事件觸發類型的行為皆適用AWS Lambda服務,諸如App中的互動行為、網頁點擊,甚至連線裝置的輸出等,不過Amazon特別提到,盡量不要使用狀態機形式的程式邏輯,以免影響效能。AWS Lambda宣稱無論流量多少,都能維持同樣的效能。總括來說,AWS Lambda是一個極高階的運算服務,整合了營運、管理、安全性更新、程式碼部署、網頁服務以及監控後臺。

 

Amazon列出3種AWS Lambda服務可能的使用情境。

 

可以先把AWS Lambda想像成一般雲端網頁伺服器,而各資料夾被稱作資料桶(Bucket)。

 

使用AWS Lambda提供的工具上傳網頁程式到資料桶中,頁面右邊會顯示資料桶中物件屬性。

 

作為範例所上傳的網頁,是一個陽春的部落格程式。

 

Lambda服務使用Amazon DynamoDB的NoSQL資料庫存放資料。

 

AWS Lambda的關鍵就在資料桶上可以設定事件(Event),當事件被觸發便會執行相對應的動作。

 

以自動產生縮圖為例,設定當此資料桶增加圖檔,則滿足觸發事件的條件,AWS Lambda便自動執行相對應產生縮圖的程式碼。

 

無論是直接將圖上傳至資料桶,或是經由網頁程式上傳,只要資料桶中有新增圖檔,便會產生縮圖。

 

圖左是事件的程式碼,下拉式選單可以選擇幾項預設的事件,也可以用自己撰寫,右邊則是當事件被觸發時,所要執行的動作函式,下方可以預覽程式碼執行的結果。目前Lambda只支援Javascript,未來將會支援更多主流程式語言。

 

後臺可以觀察函式被呼叫的次數以及各種數值。

 

先手動在DynamoDB輸入一筆紀錄

 

圖十一:部落格顯示了手動輸入資料庫的文字,以及剛剛自動產生的縮圖。

 

AWS Lambda免費提供前100萬次請求,以及每月320萬秒的計算時間,之後每百萬請求收費0.2美元。AWS Lambda是Amazon試圖讓企業無伺服器化的重要戰略之一。

 

 


Advertisement

更多 iThome相關內容