AWS Lambda 教學筆記
AWS Lambda 是一個無伺服器(Serverless)運算服務,允許開發者在不管理伺服器的情況下運行程式碼,並依執行次數與資源使用量計費,詳見官方文檔。
1. Lambda 特色
無伺服器管理:無需啟動或維護 EC2 實例。
事件觸發運行:支援來自 S3、DynamoDB、API Gateway、CloudWatch 等多種事件源。
自動擴展:根據需求自動同時處理多個事件。
按使用付費:依實際運行時間(毫秒級)與記憶體大小收費。
多語言支援:支援 Python、Node.js、Java、Go、C# 等程式語言。
2. Lambda 架構概念
Function(函數):部署的程式邏輯單位。
Trigger(觸發器):啟動 Lambda 的事件來源,如 S3 上傳檔案或 API Gateway 請求。
Execution Role(執行角色):Lambda 執行時使用的 IAM 角色,用於存取其他 AWS 資源。
Layers(層):共用函式庫或依賴套件的封裝,供多個 Lambda 重複使用。
Concurrency(併發):Lambda 同時處理多事件的能力,可設置並發上限。
3. 建立 Lambda 函數流程
進入 AWS Lambda Console → 點擊 Create function
選擇 Author from scratch 或使用範本
選擇程式語言(如 Python 3.12)並設定 Execution Role
上傳程式碼或在內建編輯器撰寫
設定觸發器,例如 S3、API Gateway 或 EventBridge
儲存並測試 Lambda 函數
4. 範例程式碼(Python)
def lambda_handler(event, context):
print("Received event:", event)
return {
'statusCode': 200,
'body': 'Hello from Lambda!'
}
5. 常見應用場景
後端 API:搭配 API Gateway 建立 Serverless REST API
事件驅動處理:S3 檔案上傳觸發影像壓縮或格式轉換
定時任務:使用 EventBridge 定期觸發 Lambda 處理資料
資料串接:整合 DynamoDB、S3、SNS/SQS 建立資料流管線
6. 成本控制建議
適用於不需長時間運算的輕量工作負載
依事件觸發與執行時間計費,避免閒置資源浪費
對頻繁觸發或長運行程式可考慮搭配 Step Functions 或 ECS
這份筆記適合初學者快速理解 AWS Lambda 的核心概念與使用流程,可依需求補充進階內容,如 Provisioned Concurrency、Lambda@Edge 或與 Step Functions 的整合。
Last updated