本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
選取和設定 Lambda 函數的指令集架構
Lambda 函數的指令集架構會決定 Lambda 用來執行函數的電腦處理器類型。Lambda 提供了指令集架構的選擇:
-
arm64 – 適用於 Graviton 處理器的 64 位元 ARM AWS 架構。
-
x86_64 - 64 位元 x86 架構,適用於 x86 處理器。
注意
arm64 架構在大多數情況下都可用 AWS 區域。如需詳細資訊,請參閱AWS Lambda 定價
如需如何使用 arm64 架構建立函數的範例,請參閱 AWS Lambda 函數支援的 AWS Graviton2 處理器
使用 arm64 架構的優點
與在 x86_64 架構上執行的同等函數相比,使用 arm64 架構 (AWS Graviton 處理器) 的 Lambda 函數可以實現更高的價格和效能。考慮將 arm64 用於運算密集的應用程式,例如高效能運算、視訊編碼和模擬工作負載。
Lambda 會管理基礎硬體,並不保證特定處理器的產生:視區域硬體可用性而定,您的函數可能會在不同世代的 Graviton 處理器上執行。您的程式碼不以特定晶片組為目標;它只需要與 arm64 (AArch64) 架構相容。相較於 x86_64,所有 Graviton 世代都提供這些優點:
-
每個 vCPU 較大的 L2 快取,可減少記憶體讀取時間,並改善 Web 和行動後端、微服務和資料處理系統的延遲。
-
透過 Arm 密碼編譯延伸模組改善加密效能。
-
支援降低 CPU 型機器學習推論延遲的指令集。
如需詳細資訊,請參閱 AWS Graviton 處理器
遷移到 arm64 架構的要求
當您選取要遷移至 arm64 架構的 Lambda 函數時,為了確保順利遷移,請確定您的函數符合下列需求:
-
部署套件只包含開放原始碼元件和您控制的原始碼,以便您可以針對遷移進行任何必要的更新。
-
如果函數程式碼包含第三方相依性,則每個程式庫或套件都會提供 arm64 版本。
函數程式碼與 arm64 架構的相容性
您的 Lambda 函數程式碼必須與函數的指令集架構相容。將函數遷移到 arm64 架構之前,請注意下列有關目前函數程式碼的幾點:
-
如果您使用內嵌的程式碼編輯器新增函數程式碼,則您的程式碼可能無需修改即可在任一架構上執行。
-
如果上傳了您的函數程式碼,則您必須上傳與目標架構相容的新程式碼。
-
如果您的函數使用層,則必須檢查每一層以確定其與新架構相容。如果層不相容,請編輯函數,將目前的層版本取代為相容的層版本。
-
如果您的函數使用 Lambda 延伸模組,則必須檢查每個延伸模組,以確定其與新架構相容。
-
如果您的函數使用容器映像部署套件類型,則必須建立與函數架構相容的新容器映像。
如何遷移到 arm64 架構
若要將 Lambda 函數遷移至 arm64 架構,建議您遵循下列步驟:
-
為您的應用程式或工作負載建置相依性清單。常見相依性包括:
-
函數使用的所有程式庫和套件。
-
用來建置、部署和測試函數的工具,例如編譯器、測試套件、持續交付和持續整合 (CI/CD) 管道、佈建工具,以及指令碼。
-
Lambda 延伸模組和第三方工具,用來在生產環境中監控函數。
-
-
對於每個相依性,請檢查版本,然後檢查 arm64 版本是否可用。
-
建置環境來遷移應用程式。
-
引導應用程式。
-
測試和除錯應用程式。
-
測試 arm64 函數的效能。將效能與 x86_64 版本進行比較。
-
更新您的基礎設施管道以支援 arm64 Lambda 函數。
-
將部署暫存至生產環境。
例如,使用別名路由組態來分割函數 x86 和 arm64 版本之間的流量,並比較效能和延遲。
如需如何為 arm64 架構建立程式碼環境的詳細資訊,包括 Java、Go、.NET 和 Python 的語言特定資訊,請參閱 Graviton GitHub AWS
設定指令集架構
您可以使用 Lambda 主控台、 AWS SDKs、 AWS Command Line Interface (AWS CLI) 或 為新的和現有的 Lambda 函數設定指令集架構 CloudFormation。依照這些步驟操作,在主控台中為現有的 Lambda 函數變更指令集架構。
-
開啟 Lambda 主控台的事件函數頁面
。 -
選擇函數名稱以為其設定指令集架構。
-
在程式碼主索引標籤上的執行期設定區段選擇編輯。
-
在 架構 選擇要用於函數的指令集架構。
-
選擇儲存。