本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
選取並設定 Lambda 函數的指令集架構
Lambda 函數的指令集架構會決定 Lambda 用來執行函數的電腦處理器類型。Lambda 提供了指令集架構的選擇:
-
arm64 — 64 位元ARM架構,適用於 AWS 重力 2 處理器。
-
x86_64 - 64 位元 x86 架構,適用於 x86 處理器。
注意
arm64 架構在大 AWS 區域多數情況下都可以使用。如需詳細資訊,請參閱 AWS Lambda 定價
如需如何使用 arm64 架構建立函數的範例,請參閱由AWS 重力 on2 處理器提供支援的AWS Lambda 函
使用 arm64 架構的優點
與在 x86_64 架構上執行的同等函數相比,使用 arm64 架構 (AWS Graviton2 處理器) 的 Lambda 函數可以實現更好的價格和效能。考慮將 arm64 用於運算密集的應用程式,例如高效能運算、視訊編碼和模擬工作負載。
引力 2 CPU 使用 Neoverse N1 核心,並支持 Armv8.2(包括和加密擴展)以CRC及其他幾個架構擴展。
Graviton2 透過每 v 提供更大的 L2 快取記憶體來減少記憶體讀取時間CPU,進而改善 Web 和行動後端、微服務及資料處理系統的延遲效能。Graviton2 也提供改善的加密效能,並支援可改善CPU基礎機器學習推論延遲的指令集。
如需有關 AWS 重力 on2 的詳細資訊,請參閱AWS 重力子處理器。
遷移到 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,請參閱引AWS 力 GitHub子儲存庫入門
設定指令集架構
您可以使用 Lambda 主控台、 AWS SDKs AWS Command Line Interface (AWS CLI) 或,為新的和現有的 Lambda 函數設定指令集架構 AWS CloudFormation。依照這些步驟操作,在主控台中為現有的 Lambda 函數變更指令集架構。
-
開啟 Lambda 主控台中的 函數頁面
。 -
選擇函數名稱以為其設定指令集架構。
-
在程式碼主索引標籤上的執行期設定區段選擇編輯。
-
在 架構 選擇要用於函數的指令集架構。
-
選擇 Save (儲存)。