關於 AWS Lambda,前面已經吹過一大堆神話,說什麼「Serverless 神器」、「省錢救星」、「老闆夢寐以求的雲端省錢機」。今天我們就要實戰一下,看看到底是不是神器,還是只是另一個的背鍋機制。
先說重點:Lambda 有個「冷啟動」的問題。
簡單來說就是:
AWS 官網還很貼心寫了篇文章教你「如何降低冷啟動時間」(降低AWS Lambda 冷启动时间的4种方案)。然後還附了一張表,告訴你哪種語言啟動時間最短。
結論:Python 最快。
(但最快不代表效能最好,懂吧,就像你打開 VS Code 比 IntelliJ 快,但寫 JavaScript 的 bug 數量還是可以追上隔壁寫 Java 的同事。)
所以我們今天就用 Python 來示範。(才不是因為最近都只在寫 Python 腳本,絕對不是。)
打開 Lambda 主控台。
按右上角的 Create Function
(建立函數)。
選 Author from scratch
(重零開始),因為工程師的人生就是不斷「從零開始」:
完成後你就會進到 Lambda 的編輯畫面。這裡要注意:
Deploy(部署)
和 Test(測試)
。Deploy
在這邊不是「上線」,是「存檔」!Test
才是執行!AWS 在每個從零開始的 Lambda 都幫你準備了一個 Hello World,直接可以跑。
這時候你就會問:「存檔在哪?」
答案是:按 Deploy。
對,Lambda 的「Deploy」就是「存檔」。
AWS 工程師可能覺得:「反正你們工程師平常也都是直接 deploy 到 production,何必多此一舉?」
存檔後要等看到上方出現:
Successfully updated the function helloWorld.
才算真的存到。不然老闆問你為什麼 production 爆炸,你只能回:「在我的環境裡是正常的呀。」
接下來就是重頭戲:執行!
按下 Test。
結果?沒反應。 別急~
這時 AWS 會跳一個 Select test event
。
因為這時候是第一次執行,要先建立一個 Event,因為 Lambda 是事件驅動的。
AWS 的 Event 就像老闆:
我們先隨便建一個叫 test-event
。 在 Event Name
輸入 test-event
或是想取的名稱都可以,其他部份先以預設值就好,畢竟我們只是測試而已。再點選紅框右上角的藍色 Save
按鈕來保存 Event 設定。
保存成功後會看到上方出現綠色的 The test event "test-event" was successfully saved.
,這很重要哦!不然沒保存到的話,會跑出什麼就~~不知道囉。
存好後再按一次 Test,就能看到下方 Output 印出 Hello World。
這時候你會覺得:「哇,第一次成功跑出 Lambda!」
工程師內心小劇場:
今天我們就算解鎖了 Lambda 的新手成就:
Lambda 的執行就先說到這,明天再來說明 Lambda 的其他設定
AWS Lambda 開發人員指南 - https://docs.aws.amazon.com/zh_tw/lambda/latest/dg/welcome.html