觀點 · 資訊分享

AWS Lambda 容器映像也能用 SnapStart:冷啟動從好幾秒縮到不到 1 秒,但台北區域還不能開

AWS Lambda 的 SnapStart 開始支援用容器映像打包的函式:先把開機好的狀態拍成快照,之後直接接著跑。Python、.NET、Java 都適用,但台北區域暫不支援。

發布
2026-09-03
篇幅
約 4 分鐘 · 1,812 字
結構
7 節 + 4 題常見問題
標籤
#AWS#Lambda#SnapStart#冷啟動#容器
AWS Lambda 容器映像也能用 SnapStart:冷啟動從好幾秒縮到不到 1 秒,但台北區域還不能開

一句話看懂:AWS Lambda 的 SnapStart 開始支援容器映像,函式不用每次從零開機,冷啟動可以從好幾秒縮到不到 1 秒,但台北區域暫時不能用。

Lambda 容器也能用 SnapStart資訊圖卡:先把開機好的狀態拍成快照,冷啟動最快不到 1 秒

先用白話講:SnapStart 是什麼?

想像一間早餐店,每天早上開門前要先熱鍋、備料、擺好餐具,花半小時才能開始接單。如果能把「一切準備好」的那一刻整個存起來,隔天一按鍵就回到那個狀態,客人一進門就能點餐。

SnapStart 就是 Lambda 的這顆按鍵。Lambda 是 AWS 的「無伺服器」服務:你只上傳程式,有人呼叫時 AWS 才幫你開一台小機器來跑。問題是開機要載入套件、初始化框架,第一個請求常常要多等好幾秒,這叫做冷啟動。SnapStart 會在你發布版本時,先把初始化完成的狀態拍成快照,之後直接從快照接著跑。

發生什麼事

AWS 在 9 月 2 日宣布,SnapStart 開始支援用容器映像打包的函式。

  • 以前 SnapStart 只支援 zip 打包的受管執行環境(Python、.NET、Java)
  • 容器映像最大可以到 10 GB,映像越大,冷啟動時要下載的層和初始化的東西越多,官方說常常要好幾秒
  • 開了 SnapStart 後,官方說啟動時間最快可以縮到不到 1 秒,適合 AI 推論、互動式 API 這類怕延遲的工作
  • 除了紐西蘭與台北區域,其他所有商業區域都能用

會影響誰?

你的情況 能不能直接開
AWS 官方基底映像的 Java 11+、Python 3.12+、.NET 8+ 可以,用法跟 zip 版一樣
官方基底映像的 Node.js、Ruby,或自訂基底映像 要照文件另外處理執行階段掛勾
函式部署在台北區域 目前不行
暫存空間設超過 512 MB、用了 EFS 或佈建並行 不支援

給開發者的技術細節

SnapStart 只能用在已發布的版本和指向版本的別名,$LATEST 不行。用 AWS CLI 開啟:

aws lambda update-function-configuration \
  --function-name my-fn \
  --snap-start ApplyOn=PublishedVersions
aws lambda publish-version --function-name my-fn
  • 唯一值要小心:同一份快照會被拿來還原很多個執行環境,初始化時產生的亂數、ID、密鑰會變成大家共用,要改到處理請求時才產生
  • 連線要重檢:初始化時建立的資料庫或網路連線,還原後不保證還活著;AWS SDK 建立的連線多半會自動恢復
  • 費用:Java 受管執行環境不額外收費;其他情況要付快照快取費(每個版本最低算 3 小時)和每次還原的費用,記得刪掉沒在用的舊版本,不然快取費會一直算

我的看法

接案時很常遇到這種組合:API 用 .NET 寫,為了跟其他服務用同一套部署流程而打包成容器。這時 Lambda 的冷啟動一直是讓人猶豫的地方,使用者第一次點開頁面就要多等好幾秒,體感很差。這次容器也能開 SnapStart,算是補上很實際的一塊。

不過台灣讀者要注意,台北區域剛好在不支援名單裡。如果你為了延遲或資料落地選台北區域,這個功能暫時用不到;反過來說,部署在東京或新加坡的人可以先找一個冷啟動最痛的函式試試看,順便檢查程式有沒有在初始化階段產生唯一值,這是最容易踩到的地方。

名詞小辭典

  • Lambda:AWS 的無伺服器運算服務,只上傳程式、依呼叫次數和執行時間付費,不用自己管主機。
  • 冷啟動(Cold Start):函式閒置一陣子後第一次被呼叫,要先開新環境、載入程式,所以比較慢。
  • 容器映像(Container Image):把程式和它需要的所有套件打包成一個檔案,在哪裡跑都一樣。
  • 快照(Snapshot):把某一刻的記憶體和磁碟狀態整個存起來,之後可以直接回到那一刻。

資料來源

常見問題

SnapStart 跟「佈建並行」有什麼不同?
佈建並行是花錢讓函式一直保持開機,回應最快;SnapStart 是先存好開機後的快照,有請求時才從快照還原,比較便宜但不是零延遲。兩者不能同時用在同一個函式上。
我的函式在台北區域,可以用嗎?
目前不行。官方公告與文件都寫明,SnapStart 支援除了紐西蘭與台北以外的所有商業區域。
開了 SnapStart 程式要改嗎?
多數情況不用改,但如果初始化階段會產生唯一值(例如亂數、ID)、建立網路連線或抓暫存憑證,就要確認從快照還原後這些東西還正確,必要時改到處理請求時才產生。
要另外付錢嗎?
Java 受管執行環境不額外收費。其他情況要付兩種費用:每個開了 SnapStart 的版本的快照快取費(最低算 3 小時),以及每次從快照還原的費用,都依函式設定的記憶體大小計價。
LINE