# AWS - S3 Object Lambda


# 前言

Amazon S3 Object Lambda 是 AWS 的一項 增強型 S3 功能,允許你在 讀取 S3 物件時,動態修改或處理資料,而不需要先改寫物件本身。

簡單來說: 你可以對 S3 上的資料加上 即時轉換、過濾、格式轉換、加密 / 解密,然後返回給應用程式。


# 核心概念

  1. S3 Object Lambda Access Point
    • 是 S3 Object Lambda 的入口。
    • 透過 Access Point 存取原始 S3 bucket,但可以在讀取物件時觸發 Lambda 函數。
  2. Lambda 函數
    • 當應用程式透過 Object Lambda Access Point 讀取資料時,Lambda 會被觸發。
    • 可以做:
      • 過濾敏感資訊(如隱藏個資)
      • 格式轉換(CSV → JSON)
      • 圖片 / 文件動態壓縮或轉換
      • 實時加密 / 解密
  3. 原始 S3 Bucket
    • Object Lambda 不會改動原始物件。
    • Lambda 函數會 讀取原始物件,回傳處理後的結果。

# 使用流程

  1. 建立 S3 Bucket(存放原始資料)
  2. 建立 S3 Object Lambda Access Point → 指定目標 Bucket
  3. 指定 Lambda 函數 → 處理物件
  4. 應用程式透過 Object Lambda Access Point 讀取資料
  5. Lambda 函數處理後回傳 → 應用程式獲得修改後的物件

# 使用情境

  1. 資料脫敏 / 隱私保護
    • 應用程式讀資料時,Lambda 會自動隱藏或遮罩敏感欄位(PII)
  2. 動態格式轉換
    • CSV → JSON 或 JSON → Parquet
    • 無需事先轉換資料或複製新的物件
  3. 即時加密 / 解密
    • 原始資料加密存放
    • 讀取時透過 Lambda 解密給應用程式
  4. 圖片 / 文件處理
    • 動態生成縮圖、裁剪或轉檔
    • 無需預先生成所有不同尺寸版本

# 優點

  • 無需修改原始 S3 物件
  • 即時處理 → 適合動態需求或多種消費者
  • 整合 Lambda → 支援各種自訂邏輯
  • 安全 → 可控制誰能透過 Object Lambda Access Point 讀取物件

# 定價

  • Lambda 執行費用:依照執行次數與執行時間計費
  • S3 存取費用:依照資料傳輸與請求次數計費
  • Object Lambda Access Point 本身免費