iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
Build on AWS

從零到雲端:AWS 開發之路系列 第 17

Day17 認識 API Gateway(API 管理),建立一個REST API (1)

  • 分享至 

  • xImage
  •  

今天的內容我們將分為兩天做介紹。昨天我們在Lambda裡面做了一個「Hello User」程式,雖然能運行,但只有我們自己在AWS Console測試才看得到。那麼問題來了:
要怎麼讓外部使用者(像是用瀏覽器、手機 App)也能呼叫這個 Lambda?
答案就是:API Gateway

什麼是API Gateway?

API Gateway 就像一個「入口大門」,專門管理 API 的進出。
流程可以想像成:

  1. 使用者(例如瀏覽器)發送一個HTTP請求
  2. API Gateway接收請求,轉換成事件JSON
  3. 把事件丟給Lambda(或其他後端服務)
  4. Lambda執行程式,回傳結果給API Gateway
  5. API Gateway再回傳結果給使用者

簡單比喻:

  • 使用者 = 客人
  • API Gateway = 櫃檯
  • Lambda = 後台員工
    客人不會直接跑去後台(Lambda),一定要先經過櫃檯(API Gateway)。

API Gateway的功能

  1. 建立REST API/HTTP API
  2. 權限與安全控管(金鑰、JWT、IAM)
  3. 流量管理(限制請求次數、防止濫用)
  4. 監控與記錄(整合 CloudWatch)
  5. 服務整合(Lambda、DynamoDB、S3、EC2…)

實作:建立一個Hello API

我們來做一個簡單的REST API,讓瀏覽器輸入網址就能看到 "Hello,(你的輸入)!"

Step1:修改Lambda中的程式碼

Lambda 是負責執行程式邏輯的地方。預設的 Hello World 範例只能回傳固定字串,但我想要做到「根據使用者輸入的名字來回應」。所以我們修改 Lambda 程式碼如下:

export const handler = async (event) => {
    const name = event.queryStringParameters?.name || "Guest";
    return {
        statusCode: 200,
        body: `Hello, ${name}!`
    };
};

這裡有幾個重點:

  • event.queryStringParameters:代表從網址上帶進來的參數,例如 ...?name=Michelle
  • || "Guest":如果使用者沒有輸入名字,預設回傳 Guest。

為了確認程式正確,我們可以在 Lambda Console 的 Test Event 測試:

{
  "queryStringParameters": {
    "name": "Michelle"
  }
}

測試結果應該會看到:

Hello, Michelle!

這表示我們的 Lambda 已經能根據輸入動態回應。


上一篇
Day16 用 Lambda 建立一個 Hello User 程式
下一篇
Day18 認識 API Gateway(API 管理),建立一個REST API (2)
系列文
從零到雲端:AWS 開發之路22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言