iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

API Gateway + Lambda 已經是個很泛用的組合

使用 API Gateway 專心處理路由和參數驗證

而 Lambda 則專心處理業務邏輯的部分

但是總有一些特別的情境

像是 Lambda 調用其他的程式等待執行節

導致這個 Lambda Function 的 Runtime 有點長

https://ithelp.ithome.com.tw/upload/images/20231008/20141518exgwFcmyd9.png

官方文件中明確說明 timeout 時間為 30 秒

而且這個限制是不可調整的

許多人可能會說:「這樣我們直接呼叫 Lambda Function 不就好了」

AWS Lambda 提供長達 15 分鐘的 Runtime 時間

這樣就可以解決超時問題又可以順利完成功能

只是相對來說 URL 醜一點而已

嚴格來說,捨棄 API Gateway 直接呼叫 Lambda

還有可能少考慮到一些安全性的問題

官方對於 AWS Lambda 其實還有基於資源型的 Policy

這個是個可以提高安全性的方式

但是仍然無法解決網址很醜的問題

這時候我們可以考慮在前面掛一層 Load Balance

https://ithelp.ithome.com.tw/upload/images/20231008/20141518NOZpMmNvHl.png

有了 Load Balance 以後

對外我們可以針對 Port 做限制

對 Lambda 的來說來源依舊是統一來自 AWS 上的資源

不用擔心 AWS Lambda 特規不好管理的問題

而多了 AWS Load Balance 比較大的好處

除了可以綁憑證

讓網址看起來更加合規以外

也可以在 Load Balance 上綁定 Web ACLs

https://ithelp.ithome.com.tw/upload/images/20231008/20141518IOvhzr3r4z.png

處理一些常見的網路攻擊

整體安全性提升不少

如果提供的不是動態資料

其實還可以在 Applicatoin Load Balance 前方多掛 Cloud Front 做 Cache

參考資料:

  1. Amazon API Gateway 配額和重要說明
  2. Amazon API gateway timeout
  3. AWS Lambda 提供可執行達 15 分鐘的功能
  4. 將資源型政策用於 Lambda

上一篇
Day 22 使用 API Gateway + Lambda 實作 Restful 應用
下一篇
Day 24 使用 EventBridge 和 SNS 實作 AWS 服務的及時通知
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言