實戰演練:用 AWS Lambda 和 API Gateway 構建你的第一個 Serverless API
理論千遍,不如動手一遍!在前面幾篇文章中,我們了解了 Serverless 的概念、FaaS 的核心原理以及 BaaS 的重要作用。現在,是時候把這些知識運用起來,親手構建一個簡單但完整的 Serverless 應用了。
本次實戰,我們將使用 Amazon Web Services (AWS) 這個主流的云平臺,結合它的兩個核心 Serverless 服務:
- AWS Lambda (FaaS): 運行我們的后端代碼。
- AWS API Gateway (BaaS): 創建一個公開的 HTTP 接口,接收請求并觸發 Lambda 函數。
目標: 創建一個簡單的 HTTP GET API 端點,當用戶訪問這個端點時,它會返回一個 JSON 消息:“Hello from Lambda!”。
聽起來很簡單?沒錯!但這將讓你體驗到 Serverless 開發的核心流程。
準備工作
在開始之前,請確保你已準備好:
- 一個 AWS 賬戶: 如果沒有,可以訪問 AWS 官網 免費注冊一個。新用戶通常有一年的免費套餐額度,足夠我們本次實驗使用。
- 登錄 AWS 管理控制臺: 我們將主要通過 AWS 的網頁界面來完成操作,對新手更友好。
- (可選) Node.js 環境: 我們將使用 Node.js 編寫 Lambda 函數代碼。雖然可以直接在 AWS 控制臺編輯,但如果你想在本地編寫和測試,需要安裝 Node.js (LTS 版本即可)。
準備好了嗎?我們開始吧!
第一步:創建 Lambda 函數
我們的“大腦”——處理請求的代碼,將放在 Lambda 函數中。
- 登錄 AWS 管理控制臺。
- 在頂部的搜索欄中輸入
Lambda
,然后點擊進入 Lambda 服務頁面。 - 點擊 “創建函數” (Create function) 按鈕。
- 選擇 “從頭開始創作” (Author from scratch)。
- 基本信息配置:
- 函數名稱 (Function name): 輸入一個有意義的名稱,例如
myHelloFunction
。 - 運行時 (Runtime): 選擇一個較新的 Node.js LTS 版本,例如
Node.js 18.x
或Node.js 20.x
。 - 架構 (Architecture): 保持默認的
x86_64
即可。 - 權限 (Permissions): 展開 “更改默認執行角色” (Change default execution role)。選擇 “創建具有基本 Lambda 權限的新角色” (Create a new role with basic Lambda permissions)。這將自動創建一個允許函數將日志寫入 AWS CloudWatch 的角色,方便后續排查問題。
- 函數名稱 (Function name): 輸入一個有意義的名稱,例如
- 點擊 “創建函數” (Create function)。等待函數創建完成。
編寫函數代碼:
-
函數創建成功后,向下滾動到 “代碼源” (Code source) 部分。
-
你會看到一個默認的
index.mjs
或index.js
文件。將其中的全部內容替換為以下 Node.js 代碼:// 使用 async/await 語法定義 handler export const handler = async