選取並設定 Lambda 函數的指令集架構 - AWS Lambda

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

選取並設定 Lambda 函數的指令集架構

Lambda 函數的指令集架構會決定 Lambda 用來執行函數的電腦處理器類型。Lambda 提供了指令集架構的選擇:

  • arm64 — 64 位元ARM架構,適用於 AWS 重力 2 處理器。

  • x86_64 - 64 位元 x86 架構,適用於 x86 處理器。

注意

arm64 架構在大 AWS 區域多數情況下都可以使用。如需詳細資訊,請參閱 AWS Lambda 定價。在記憶體價格表中,選擇「機臂價格」標籤,然後開啟「地區」下拉式清單,查看哪些 AWS 區域 支援使用 Lambda 的 arm64。

如需如何使用 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 架構,建議您遵循下列步驟:

  1. 為您的應用程式或工作負載建置相依性清單。常見相依性包括:

    • 函數使用的所有程式庫和套件。

    • 用來建置、部署和測試函數的工具,例如編譯器、測試套件、持續交付和持續整合 (CI/CD) 管道、佈建工具,以及指令碼。

    • Lambda 延伸模組和第三方工具,用來在生產環境中監控函數。

  2. 對於每個相依性,請檢查版本,然後檢查 arm64 版本是否可用。

  3. 建置環境來遷移應用程式。

  4. 引導應用程式。

  5. 測試和除錯應用程式。

  6. 測試 arm64 函數的效能。將效能與 x86_64 版本進行比較。

  7. 更新您的基礎設施管道以支援 arm64 Lambda 函數。

  8. 將部署暫存至生產環境。

    例如,使用別名路由組態來分割函數 x86 和 arm64 版本之間的流量,並比較效能和延遲。

如需有關如何建立 arm64 架構之程式碼環境的詳細資訊,包括 Java、Go、. NET和 Python,請參閱引AWS 力 GitHub子儲存庫入門

設定指令集架構

您可以使用 Lambda 主控台、 AWS SDKs AWS Command Line Interface (AWS CLI) 或,為新的和現有的 Lambda 函數設定指令集架構 AWS CloudFormation。依照這些步驟操作,在主控台中為現有的 Lambda 函數變更指令集架構。

  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇函數名稱以為其設定指令集架構。

  3. 程式碼主索引標籤上的執行期設定區段選擇編輯

  4. 架構 選擇要用於函數的指令集架構。

  5. 選擇 Save (儲存)。