# AWS - S3 Object Lambda
# 前言
Amazon S3 Object Lambda 是 AWS 的一項 增強型 S3 功能,允許你在 讀取 S3 物件時,動態修改或處理資料,而不需要先改寫物件本身。
簡單來說: 你可以對 S3 上的資料加上 即時轉換、過濾、格式轉換、加密 / 解密,然後返回給應用程式。
# 核心概念
- S3 Object Lambda Access Point
- 是 S3 Object Lambda 的入口。
- 透過 Access Point 存取原始 S3 bucket,但可以在讀取物件時觸發 Lambda 函數。
- Lambda 函數
- 當應用程式透過 Object Lambda Access Point 讀取資料時,Lambda 會被觸發。
- 可以做:
- 過濾敏感資訊(如隱藏個資)
- 格式轉換(CSV → JSON)
- 圖片 / 文件動態壓縮或轉換
- 實時加密 / 解密
- 原始 S3 Bucket
- Object Lambda 不會改動原始物件。
- Lambda 函數會 讀取原始物件,回傳處理後的結果。
# 使用流程
- 建立 S3 Bucket(存放原始資料)
- 建立 S3 Object Lambda Access Point → 指定目標 Bucket
- 指定 Lambda 函數 → 處理物件
- 應用程式透過 Object Lambda Access Point 讀取資料
- Lambda 函數處理後回傳 → 應用程式獲得修改後的物件
# 使用情境
- 資料脫敏 / 隱私保護
- 應用程式讀資料時,Lambda 會自動隱藏或遮罩敏感欄位(PII)
- 動態格式轉換
- CSV → JSON 或 JSON → Parquet
- 無需事先轉換資料或複製新的物件
- 即時加密 / 解密
- 原始資料加密存放
- 讀取時透過 Lambda 解密給應用程式
- 圖片 / 文件處理
- 動態生成縮圖、裁剪或轉檔
- 無需預先生成所有不同尺寸版本
# 優點
- 無需修改原始 S3 物件
- 即時處理 → 適合動態需求或多種消費者
- 整合 Lambda → 支援各種自訂邏輯
- 安全 → 可控制誰能透過 Object Lambda Access Point 讀取物件
# 定價
- Lambda 執行費用:依照執行次數與執行時間計費
- S3 存取費用:依照資料傳輸與請求次數計費
- Object Lambda Access Point 本身免費