今天正式進入第3週:Serverless(無伺服器)的學習!前兩週我們體驗了EC2(雲端主機)、S3(儲存空間)、RDS(資料庫),這些都需要啟動伺服器並自己管理。而從今天開始,我們要學習「無伺服器」(Serverless)的世界。
什麼是Serverless?
Serverless 並不是「沒有伺服器」,而是 我們不用自己維護伺服器。
在傳統的 EC2 架構下,我們要自己:
- 選擇主機規格
- 啟動伺服器
- 更新系統、打安全補丁
- 管理網路安全與擴充
但在Serverless架構裡,這些麻煩事 AWS 幫我們處理好了。我們只要寫程式碼,AWS會在需要的時候自動幫我們執行,而且是用多少算多少,不需要24小時一直開著一台機器。
認識AWS Lambda
AWS Lambda是AWS最有代表性的Serverless服務。它的特色是:
1. 事件觸發
- Lambda 不需要你手動「啟動」伺服器,它是被「事件」觸發的。
- 事件來源可以是很多東西,例如:
(1) 使用者呼叫API(透過 API Gateway)
(2) S3上傳一個檔案
(3) DynamoDB寫入一筆資料
(4) CloudWatch定時排程
2. 自動伸縮
- 如果有1個人呼叫Lambda,就執行一次程式。
- 如果有1000個人同時呼叫,AWS會自動同時開1000個Lambda實例。
- 完全不需要自己配置伺服器大小。
Lambda的計費方式
主要分兩部分:
- 請求數 (Requests): 每次觸發 Lambda(執行一次 function),就算1個請求。
- 執行時間 (Duration): 依照程式實際跑多久來算(以毫秒計算),再乘上你設定的記憶體大小(MB)。
換句話說:記憶體越大、程式跑越久,花費越高。
免費額度每個月都有:
- 100萬次請求免費
- 400,000GB-秒(GB-seconds)免費運算量
實際體驗:建立第一個Lambda函數
今天先不用寫太複雜的程式,只要先體驗一下Lambda的操作。
進入AWS Console中搜尋Lambda,點選「建立函數」(Create function)
- 選擇「從頭開始」(Author from scratch)
- Function name:helloLambda
- Runtime:Python 3.x 或 Node.js 18(都可以)
建立完成後,我們在下方會看到範例程式碼,我們先用這個範例來測試是否可以上傳:
- 先幫它設定好測試事件的名稱
- JSON就是Lambda執行時會收到的event參數,我們可以隨便放資料來測試。

點擊「Test」即會跳出傳送是否成功