觀點 · 資訊分享
AWS Lambda 程式碼能放在自己的 S3:不佔 Lambda 額度,託管額度預設也從 75 GB 提到 300 GB
AWS Lambda 在 7 月 15 日支援直接引用你自己 S3 裡的程式碼,不再複製一份進 Lambda 的託管儲存,也就不佔額度。同時 Lambda 託管程式碼儲存的預設額度,從每區域 75 GB 提高到 300 GB。
- 發布
- 2026-07-15
- 篇幅
- 約 4 分鐘 · 1,839 字
- 結構
- 8 節 + 3 題常見問題
- 標籤

一句話看懂:AWS Lambda 現在可以直接引用你自己 S3 裡的程式碼,不用再複製一份進 Lambda,也就不佔 Lambda 的儲存額度;同時預設額度從每區域 75 GB 提高到 300 GB。

先用白話講:Lambda 為什麼要「複製」程式碼?
想像你把一份合約的正本放在自己家的保險櫃,但每次要給銀行辦事,銀行就先影印一份存進它的檔案室。這樣銀行用起來快,但問題是:你家的保險櫃有一份、銀行有一份,你的帳號在銀行的檔案室也有容量上限,影印太多就滿了。
AWS Lambda 是一種「不用管伺服器」的服務:你上傳一份程式的壓縮檔(部署包),平常不跑,有事件來才執行。以前,無論你的部署包放在哪裡,Lambda 都會複製一份到它自己管理的儲存空間,而且這份複製會算進你帳號的額度。
發生什麼事
AWS 在 7 月 15 日宣布兩件事:
- 自管 S3 程式碼儲存:Lambda 現在可以直接引用你自己 S3 儲存貯體裡的程式碼,不再建立中間的複製
- 預設額度提高:Lambda 託管程式碼儲存的預設上限,從每個帳號每個區域 75 GB,提高到 300 GB
官方說明,函式和 layer 很多的客戶,常常超過 75 GB,得開支援單才能增加額度。新做法讓你可以存放 S3 容許的任意多程式碼。另外,因為省掉了複製步驟,函式在建立與更新之後可以更快就緒。
費用呢?
AWS 說 Lambda 不會額外收費:你只付標準的 S3 儲存費用,以及(如果有的話)跨區域資料傳輸費。
給開發者的技術細節
設定步驟(依官方文件):
- 準備 S3 儲存貯體,並開啟版本控制,Lambda 需要用版本來辨識該用哪一版程式碼
- 上傳 .zip 部署包
- 授權 Lambda 服務主體(
lambda.amazonaws.com)對該物件有s3:GetObject與s3:GetObjectVersion;這是 S3 的資源型政策,與函式的執行角色是分開的 - 建立或更新函式/layer 時,指定 S3 物件、金鑰、物件版本,並把
S3ObjectStorageMode設為REFERENCE
AWS CLI 的更新範例:
aws lambda update-function-code \
--function-name my-function \
--s3-bucket my-bucket \
--s3-key my-function.zip \
--s3-object-version abc123def456 \
--s3-object-storage-mode REFERENCE
需要留意的地方:
- 每次呼叫
update-function-code都要指定 REFERENCE;忘了指定,預設會變回COPY,程式碼又被複製進 Lambda 儲存 - REFERENCE 模式下,Lambda 主控台的程式碼編輯器無法使用;要改程式,就更新 S3 裡的 .zip 再更新函式
- 解壓縮後 250 MB 的部署包上限沒有改變
- 相容所有 S3 儲存類別,但不包含 Glacier 系列
- 官方公告說,所有商業 AWS 區域都能用
什麼情況值得改用?
| 情況 | 建議 |
|---|---|
| 函式不多、沒撞過額度 | 維持預設,額度已提高到 300 GB |
| 函式與 layer 很多、常撞額度 | 評估 REFERENCE,免開支援單 |
| 已用 S3 管理所有部署包、想有單一來源 | REFERENCE 比較順手 |
| 習慣在主控台直接改程式碼 | 不適合,編輯器在此模式下無法使用 |
我的看法
說實話,75 GB 對大多數個人或小團隊的專案來說已經很夠。我反而覺得這次更新比較有感的,是「單一來源」這個概念:部署包只放在自己的 S3,Lambda 去讀,不會出現「S3 裡一份、Lambda 裡又一份」的混亂。
但它也有代價:要記得開版本控制、設好資源政策,而且每次更新都要帶參數。如果你的部署流程是用 CloudFormation 或 SAM 這類工具,一次設定好就沒問題;如果是手動用 CLI,就很容易漏掉。建議先在不重要的函式試一次,再決定要不要全面導入。
名詞小辭典
- Lambda:AWS 的無伺服器運算服務,程式只在被觸發時才執行,按次數與時間計費。
- Layer:Lambda 的共用程式庫套件,讓多個函式共用同一批相依檔案。
- S3:AWS 的物件儲存服務,常用來放檔案、備份與部署包。
- S3 版本控制:每次上傳同名檔案,都保留舊版本,Lambda 靠它辨識該用哪一版。