View a markdown version of this page

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

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

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

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

  • arm64 – 適用於 Graviton 處理器的 64 位元 ARM AWS 架構。

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

注意

arm64 架構在大多數情況下都可用 AWS 區域。如需詳細資訊,請參閱AWS Lambda 定價。在記憶體價格表格中,選擇 Arm Price 索引標籤,然後開啟區域下拉式清單,以查看哪個 AWS 區域 支援搭配 Lambda 的 arm64。

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

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

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

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

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

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

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

  4. 引導應用程式。

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

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

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

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

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

如需如何為 arm64 架構建立程式碼環境的詳細資訊,包括 Java、Go、.NET 和 Python 的語言特定資訊,請參閱 Graviton GitHub AWS GitHub 儲存庫入門。

設定指令集架構

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

  1. 開啟 Lambda 主控台的事件函數頁面。

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

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

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

  5. 選擇儲存。