iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0

關於 AWS Lambda,前面已經吹過一大堆神話,說什麼「Serverless 神器」、「省錢救星」、「老闆夢寐以求的雲端省錢機」。今天我們就要實戰一下,看看到底是不是神器,還是只是另一個的背鍋機制。

關於冷啟動

先說重點:Lambda 有個「冷啟動」的問題。
簡單來說就是:

  • 你第一次叫它跑,它會先打個哈欠,泡杯咖啡,然後才開始動。
  • 第二次之後才會比較快,因為他還沒完全睡著。

AWS 官網還很貼心寫了篇文章教你「如何降低冷啟動時間」(降低AWS Lambda 冷启动时间的4种方案)。然後還附了一張表,告訴你哪種語言啟動時間最短。
https://ithelp.ithome.com.tw/upload/images/20250927/20141071ZFF6CLWptv.png
結論:Python 最快。
(但最快不代表效能最好,懂吧,就像你打開 VS Code 比 IntelliJ 快,但寫 JavaScript 的 bug 數量還是可以追上隔壁寫 Java 的同事。)

所以我們今天就用 Python 來示範。(才不是因為最近都只在寫 Python 腳本,絕對不是。)

建立函數

  1. 打開 Lambda 主控台

  2. 按右上角的 Create Function(建立函數)
    https://ithelp.ithome.com.tw/upload/images/20250927/20141071v537kten9J.png

  3. Author from scratch(重零開始),因為工程師的人生就是不斷「從零開始」:

    • 函數名稱:隨便取,但建議不要取「test」,因為三個月後 debug 的人會詛咒你。
    • Runtime:Python 3.13(最新的先選,反正踩雷也比較潮)。
    • Role:這很重要,決定 Lambda 能幹嘛。
    • 按下 Create Function
      https://ithelp.ithome.com.tw/upload/images/20250927/20141071W0DDNeRoR7.png
  4. 完成後你就會進到 Lambda 的編輯畫面。這裡要注意:

  • 左邊 1 號紅色框框是檔案清單。
  • 中間 2 號紅色框框是程式碼的部份。
  • 底下有兩顆藍色按鈕:Deploy(部署)Test(測試)
    https://ithelp.ithome.com.tw/upload/images/20250927/20141071Yj9DkcxAwI.png
    注意了:
  • Deploy 在這邊不是「上線」,是「存檔」!
  • Test 才是執行!
    這誰設計的 UI?難怪會有人 Deploy 到 production 結果沒壞就算成功。

部署存檔(AKA 存檔)

AWS 在每個從零開始的 Lambda 都幫你準備了一個 Hello World,直接可以跑。
這時候你就會問:「存檔在哪?」
答案是:按 Deploy

對,Lambda 的「Deploy」就是「存檔」。
AWS 工程師可能覺得:「反正你們工程師平常也都是直接 deploy 到 production,何必多此一舉?」

存檔後要等看到上方出現:
Successfully updated the function helloWorld.
才算真的存到。不然老闆問你為什麼 production 爆炸,你只能回:「在我的環境裡是正常的呀。」
https://ithelp.ithome.com.tw/upload/images/20250927/20141071o2qxbzqgkh.png

測試執行(AKA Hello World!)

接下來就是重頭戲:執行!
按下 Test
https://ithelp.ithome.com.tw/upload/images/20250927/20141071tAjlcsEbFC.png

結果?沒反應。 別急~
這時 AWS 會跳一個 Select test event
因為這時候是第一次執行,要先建立一個 Event,因為 Lambda 是事件驅動的。
https://ithelp.ithome.com.tw/upload/images/20250927/201410711rSZZTlgRb.png

AWS 的 Event 就像老闆:

  • EC2 Event:老闆跑來問「是哪台機器炸了?」
  • S3 Event:老闆跑來問「哪個檔案又爆掉?」

我們先隨便建一個叫 test-event。 在 Event Name 輸入 test-event 或是想取的名稱都可以,其他部份先以預設值就好,畢竟我們只是測試而已。再點選紅框右上角的藍色 Save 按鈕來保存 Event 設定。
https://ithelp.ithome.com.tw/upload/images/20250927/201410713crdfc8Qr9.png

保存成功後會看到上方出現綠色的 The test event "test-event" was successfully saved.,這很重要哦!不然沒保存到的話,會跑出什麼就~~不知道囉。
https://ithelp.ithome.com.tw/upload/images/20250927/20141071ssp56kmzqT.png

存好後再按一次 Test,就能看到下方 Output 印出 Hello World。
https://ithelp.ithome.com.tw/upload/images/20250927/20141071hNUueYco2m.png

這時候你會覺得:「哇,第一次成功跑出 Lambda!」
工程師內心小劇場:
今天我們就算解鎖了 Lambda 的新手成就:

  • 成功建立一個函數
  • 存檔(Deploy)
  • 測試(Test)
  • 印出 Hello World

Lambda 的執行就先說到這,明天再來說明 Lambda 的其他設定

AWS Lambda 開發人員指南 - https://docs.aws.amazon.com/zh_tw/lambda/latest/dg/welcome.html


上一篇
Day 16 - AWS Lambda 介紹:雲端當之無愧的神器 - Part 2
系列文
最適合小型工作室精打細算的服務使用法17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言