了解 Lambda 管理執行階段版本更新 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解 Lambda 管理執行階段版本更新

Lambda 提供安全性更新、錯誤修正、新功能、效能增強功能,以及次要版本支援,讓每個受管理執行階段都保持最新狀態。這些執行階段更新會發佈為執行階段版本。Lambda 會將函數從舊的執行階段版本遷移至新的執行階段版本,藉此將執行階段更新套用至函數。

預設情況下,對於使用受管執行階段的函數,Lambda 會自動套用執行階段更新。若使用自動執行階段更新,Lambda 需承受修補執行階段版本的運作負擔。對大多數客戶而言,自動更新是正確的選擇。您可以透過設定執行階段管理設定來變更此預設行為。

Lambda 也會將每個新的執行階段版本發佈為容器映像。若要更新容器型函數的執行階段版本,您必須從更新的基礎映像建立新的容器映像,然後重新部署函數。

每個執行階段版本都與版本號碼和 ARN (Amazon 資源名稱) 相關聯。執行階段版本編號使用 Lambda 定義的編號結構描述,與程式設計語言使用的版本編號無關。執行階段版本ARN是每個執行階段版本的唯一識別碼。您可以在 Lambda 主控台中檢視函數目前ARN的執行階段版本,或是函數記錄的一INIT_START行

執行階段版本不應與執行階段識別符混淆。每個執行階段都有唯一的執行階段識別符,例如 python3.12nodejs20.x。這些會對應到每個主要的程式設計語言版本。執行階段版本會描述個別執行階段的修補程式版本。

注意

ARN對於相同的運行時版本號在 AWS 區域 和CPU體系結構之間可能會有所不同。

運行時更新模式

Lambda 致力於提供與現有函數回溯相容的執行階段更新。但是與軟體修補一樣,在極少數情況下,執行階段更新可能會對現有函數產生負面影響。例如,安全性修補程式可能會暴露現有函數的潛在問題,取決於先前的不安全行為。在罕見的執行階段版本不相容情況下,Lambda 執行階段管理控制有助於降低對工作負載造成影響的風險。針對每個函數版本 ($LATEST 或已發佈版本),您可以選擇下列其中一種執行階段更新模式:

  • Auto (default) (自動 (預設)) - 使用 兩階段執行階段版本推展 自動更新為最新且安全的執行階段版本。我們建議大多數客戶使用此模式,便能隨時受益於執行階段更新。

  • 函數更新:當您更新函數時,更新為最新且安全的執行階段版本。當您更新函數時,Lambda 會將函數的執行階段更新為最新且安全的執行階段版本。此做法可同步執行階段更新與函數部署,讓您控制 Lambda 何時套用執行階段更新。使用此模式,您可以及早偵測並減輕罕見的執行階段更新不相容情況。使用此模式時,您必須定期更新函數,讓執行階段保持最新狀態。

  • 手動:手動更新您的執行階段版本。您可以在函數組態中指定執行階段版本。該函數將無限期使用此執行階段版本。在罕見情況下,新的執行階段版本會與現有函數不相容,您可以使用此模式,讓函數復原至較舊的執行階段版本。建議您不要使用 Manual (手動) 模式來嘗試達到跨部署的執行階段一致性。如需詳細資訊,請參閱復原 Lambda 執行階段版本

將執行階段更新套用至函數的責任分配,會根據您選擇的執行階段更新模式而有所不同。如需詳細資訊,請參閱瞭解 Lambda 執行階段管理的共同責任模型

兩階段執行階段版本推展

Lambda 會依照以下順序引入新的執行階段版本:

  1. 在第一階段,每當您建立或更新函數,Lambda 都會套用新的執行階段版本。當您呼叫UpdateFunctionCodeUpdateFunctionConfigurationAPI作業時,會更新函數。

  2. 在第二階段,Lambda 會更新任何使用 Auto (自動) 執行階段更新模式且尚未更新為新執行階段版本的函數。

推展程序的整體持續時間會因許多因素而有所不同,包括執行階段更新中所包含任何安全性修補程式的嚴重性。

如果您正在開發和部署函數,很可能會在第一階段選擇新的執行階段版本。這會將執行階段更新與函數更新同步。在極少數情況下,最新的執行階段版本會對您的應用程式造成負面影響,而此做法可讓您立即採取更正動作。非開發中的函數仍然會在第二階段獲得自動執行階段更新的運作效益。

此方法不會影響設為 Function update (函數更新) 或 Manual (手動) 模式的函數。使用 Function update (函數更新) 模式的函數,只會在您建立或更新函數時收到最新的執行階段更新。使用 Manual (手動) 模式的函數不會收到執行階段更新。

Lambda 以漸進、滾動方式於 AWS 區域發佈新的執行階段版本。如果您的函數設為 Auto (自動) 或 Function update (函數更新) 模式,那麼同時部署至不同區域或同一地區在不同時間部署的函數,可能會採用不同的執行階段版本。需要在不同環境中保證執行期版本一致性的客戶,應 使用容器映像來部署 Lambda 函數手動 模式設計為暫時緩解措施,可在發生執行階段版本不相容函數的罕見情況下啟用執行階段版本復原。