

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

# 選取和設定 Lambda 函數的指令集架構
<a name="foundation-arch"></a>

 Lambda 函數的*指令集架構*會決定 Lambda 用來執行函數的電腦處理器類型。Lambda 提供了指令集架構的選擇：
+ arm64 – AWS Graviton2 處理器的 64 位元 ARM 架構。
+ x86\$164 - 64 位元 x86 架構，適用於 x86 處理器。

**注意**  
arm64 架構在大多數情況下都可用 AWS 區域。如需詳細資訊，請參閱[AWS Lambda 定價](https://aws.amazon.com//lambda/pricing/#aws-element-9ccd9262-b656-4d9c-8a72-34ee6b662135)。在記憶體價格表格中，選擇 **Arm Price** 索引標籤，然後開啟**區域**下拉式清單，以查看哪個 AWS 區域 支援搭配 Lambda 的 arm64。  
如需如何使用 arm64 架構建立函數的範例，請參閱 [AWS Lambda 函數 Powered by AWS Graviton2 Processor](https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions-on-arm-and-get-up-to-34-better-price-performance/)。

**Topics**
+ [使用 arm64 架構的優點](#foundation-arch-adv)
+ [遷移到 arm64 架構的要求](#foundation-arch-consider)
+ [函數程式碼與 arm64 架構的相容性](#foundation-arch-considerations)
+ [如何遷移到 arm64 架構](#foundation-arch-steps)
+ [設定指令集架構](#foundation-arch-config)

## 使用 arm64 架構的優點
<a name="foundation-arch-adv"></a>

與在 x86\$164 架構上執行的同等函數相比，使用 arm64 架構 (AWS Graviton2 處理器） 的 Lambda 函數可以實現更高的價格和效能。考慮將 arm64 用於運算密集的應用程式，例如高效能運算、視訊編碼和模擬工作負載。

Graviton2 CPU 使用 Neoverse N1 核心，並支援 Armv8.2 (包括 CRC 和加密延伸模組)，加上數個其他架構延伸模組。

Graviton2 透過每個 vCPU 提供更大的 L2 快取來減少記憶體讀取時間，進而改善 Web 和行動後端、微服務和資料處理系統的延遲效能。Graviton2 也提供改善的加密效能，並支援指令集，其可改善 CPU 型機器學習推論的延遲。

如需 AWS Graviton2 的詳細資訊，請參閱 [AWS Graviton 處理器](https://aws.amazon.com/ec2/graviton)。

## 遷移到 arm64 架構的要求
<a name="foundation-arch-consider"></a>

當您選取要遷移至 arm64 架構的 Lambda 函數時，為了確保順利遷移，請確定您的函數符合下列需求：
+ 部署套件只包含開放原始碼元件和您控制的原始碼，以便您可以針對遷移進行任何必要的更新。
+ 如果函數程式碼包含第三方相依性，則每個程式庫或套件都會提供 arm64 版本。

## 函數程式碼與 arm64 架構的相容性
<a name="foundation-arch-considerations"></a>

您的 Lambda 函數程式碼必須與函數的指令集架構相容。將函數遷移到 arm64 架構之前，請注意下列有關目前函數程式碼的幾點：
+ 如果您使用內嵌的程式碼編輯器新增函數程式碼，則您的程式碼可能無需修改即可在任一架構上執行。
+ 如果上傳了您的函數程式碼，則您必須上傳與目標架構相容的新程式碼。
+ 如果您的函數使用層，則必須[檢查每一層](adding-layers.md#finding-layer-information)以確定其與新架構相容。如果層不相容，請編輯函數，將目前的層版本取代為相容的層版本。
+ 如果您的函數使用 Lambda 延伸模組，則必須檢查每個延伸模組，以確定其與新架構相容。
+ 如果您的函數使用容器映像部署套件類型，則必須建立與函數架構相容的新容器映像。

## 如何遷移到 arm64 架構
<a name="foundation-arch-steps"></a>



若要將 Lambda 函數遷移至 arm64 架構，建議您遵循下列步驟：

1. 為您的應用程式或工作負載建置相依性清單。常見相依性包括：
   + 函數使用的所有程式庫和套件。
   + 用來建置、部署和測試函數的工具，例如編譯器、測試套件、持續交付和持續整合 (CI/CD) 管道、佈建工具，以及指令碼。
   + Lambda 延伸模組和第三方工具，用來在生產環境中監控函數。

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

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

1. 引導應用程式。

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

1. 測試 arm64 函數的效能。將效能與 x86\$164 版本進行比較。

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

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

   例如，使用[別名路由組態](configuring-alias-routing.md)來分割函數 x86 和 arm64 版本之間的流量，並比較效能和延遲。

如需如何為 arm64 架構建立程式碼環境的詳細資訊，包括 Java、Go、.NET 和 Python 的語言特定資訊，請參閱 [Graviton GitHub AWS](https://github.com/aws/aws-graviton-getting-started) GitHub 儲存庫入門。

## 設定指令集架構
<a name="foundation-arch-config"></a>

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

1. 開啟 Lambda 主控台中的 [函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

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

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

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

1. 選擇**儲存**。