設定 Lambda 函數記憶體 - AWS Lambda

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

設定 Lambda 函數記憶體

Lambda 會按設定的記憶體數量比例來配置 CPU 功率。記憶體是可供 Lambda 函數在執行時間使用的記憶體數量。可使用記憶體 設定來增加或減少配置給函數的記憶體和 CPU 功率。您可以設定介於 128 MB 到 10,240 MB 之間的記憶體,增量為 1 MB。在 1,769 MB,函數等於一個完整 vCPU (每秒一個 vCPU 秒的額度)。

此頁面說明如何及何時更新 Lambda 函數的記憶體設定。

判斷 Lambda 函數的適當記憶體設定

記憶體是控制函數效能的主要手段。預設設定為 128 MB,這是可能的最低設定。建議僅將 128 MB 用於簡單的 Lambda 函數,例如轉換事件並將其路由至其他 AWS 服務的函數。更高的記憶體配置可以提高使用匯入程式庫、Lambda 層、Amazon Simple Storage Service (Amazon S3) 或 Amazon Elastic File System (Amazon EFS) 的函數效能。按比例增加更多記憶體會增加 CPU 容量,從而提高可用的整體運算能力。如果函數受到 CPU、網路或記憶體限制,則增加記憶體設定可以大幅改善其效能。

若要尋找正確的記憶體組態,請使用 Amazon CloudWatch 監控您的函數,並在記憶體耗用量接近設定的最大值時設定警示。這有助於識別記憶體受限函數。對於 CPU 繫結和 IO 繫結函數,監控持續時間也可以提供洞見。在這些情況下,增加記憶體有助於解決運算或網路瓶頸。

您也可以考慮使用開放原始碼 AWS Lambda Power Tuning 工具。此工具使用 AWS Step Functions 以不同的記憶體配置執行 Lambda 函數的多個並行版本,並測量效能。輸入函數會在您的帳戶中執行 AWS ,執行即時 HTTP 呼叫和 SDK 互動,以測量即時生產案例中可能的效能。也可以實作 CI/CD 流程,使用此工具自動測量您部署的新函數效能。

設定函數記憶體 (主控台)

您可以在 Lambda 主控台中設定函數的記憶體。

更新函數記憶體
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇一個函數。

  3. 選擇組態索引標簽,然後選擇一般組態

    Lambda 主控台中的組態索引標籤。
  4. 一般組態中,選擇編輯

  5. 對於記憶體,設定從 128 MB 到 10,240 MB 的值。

  6. 選擇 Save (儲存)。

設定函數記憶體 (AWS CLI)

可以使用 update-function-configuration 命令來設定函數的記憶體。

aws lambda update-function-configuration \ --function-name my-function \ --memory-size 1024

設定函數記憶體 (AWS SAM)

可以使用 AWS Serverless Application Model 來設定函數的記憶體。更新 template.yaml 檔案中的 MemorySize 屬性,然後執行 sam 部署

範例 template.yaml
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Application Model template describing your function. Resources: my-function: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 1024 # Other function properties...

接受函數記憶體建議 (主控台)

如果您在 AWS Identity and Access Management (IAM) 中有管理員許可,您可以選擇接收來自 的 Lambda 函數記憶體設定建議 AWS Compute Optimizer。如需有關針對您的帳戶或組織選擇加入記憶體建議的指示,請參閱 AWS Compute Optimizer 使用者指南中的選擇加入您的帳戶

注意

Compute Optimizer 只支援使用 x86_64 架構的函數。

當您已選擇加入且 Lambda 函數符合 Compute Optimizer 需求時,您可以在一般組態中檢視並接受來自 Lambda 主控台 Compute Optimizer 的函數記憶體建議。