支援耐用函數的執行時間 - AWS Lambda

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

支援耐用函數的執行時間

耐用的函數適用於 Node.js 和 Python 執行時間。您可以在 Lambda 主控台中使用受管執行時間建立耐久的函數,或使用容器映像來部署它們,以提高執行時間版本的靈活性。

Lambda 受管執行時間

當您在 Lambda 主控台中或使用 AWS CLI 搭配 --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}' 參數建立函數時,下列受管執行期支援耐久函數。如需 Lambda 執行時間的完整資訊,請參閱 Lambda 執行時間

Language 執行時期
Node.js nodejs22.x
Node.js nodejs24.x
Python python3.13
Python python3.14
注意

Lambda 執行時間包括用於測試和開發的耐久執行 SDK。不過,我們建議您在部署套件中包含 開發套件以供生產使用。這可確保版本一致性,並避免可能影響函數行為的潛在執行時間更新。

Node.js

在 Node.js 專案中安裝 SDK:

npm install @aws/durable-execution-sdk-js

開發套件支援 JavaScript 和 TypeScript。對於 TypeScript 專案,開發套件包含類型定義。

Python

在 Python 專案中安裝 SDK:

pip install aws-durable-execution-sdk-python

Python SDK 使用同步方法,不需要 async/await

容器映像

您可以搭配容器映像使用耐久的函數,以支援其他執行時間版本或自訂執行時間組態。容器映像可讓您使用不可用作受管執行期的執行期版本,或自訂執行期環境。

若要使用容器映像建立耐用的函數:

  1. 根據 Lambda 基礎映像建立 Dockerfile

  2. 在容器中安裝耐用的執行 SDK

  3. 建置容器映像並將其推送至 Amazon Elastic Container Registry

  4. 從已啟用持久性執行的容器映像建立 Lambda 函數

Python 容器範例

建立適用於 Python 3.11 的 Dockerfile:

FROM public.ecr.aws/lambda/python:3.11 # Copy requirements file COPY requirements.txt ${LAMBDA_TASK_ROOT}/ # Install dependencies including durable SDK RUN pip install -r requirements.txt # Copy function code COPY lambda_function.py ${LAMBDA_TASK_ROOT}/ # Set the handler CMD [ "lambda_function.handler" ]

建立requirements.txt檔案:

aws-durable-execution-sdk-python

建置並推送映像:

# Build the image docker build -t my-durable-function . # Tag for ECR docker tag my-durable-function:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest # Push to ECR docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest

建立啟用持久性執行的函數:

aws lambda create-function \ --function-name myDurableFunction \ --package-type Image \ --code ImageUri=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest \ --role arn:aws:iam::123456789012:role/lambda-execution-role \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'

如需搭配 Lambda 使用容器映像的詳細資訊,請參閱《Lambda 開發人員指南》中的建立 Lambda 容器映像

執行時期考量

SDK 版本管理:在您的部署套件或容器映像中包含耐久的執行 SDK。這可確保函數使用特定的 SDK 版本,並且不受執行時間更新的影響。在 package.json或 中釘選 SDK 版本requirements.txt,以控制升級時間。

執行期更新: AWS 更新受管執行期,以包含安全性修補程式和錯誤修正。這些更新可能包含新的 SDK 版本。為了避免意外行為,請在部署套件中包含 SDK,並在部署至生產環境之前進行徹底測試。

容器映像大小:容器映像的最大未壓縮大小為 10 GB。耐用的執行 SDK 為您的映像新增最小大小。使用多階段建置並移除不必要的相依性,以最佳化您的容器。

冷啟動效能:容器映像的冷啟動時間可能比受管執行時間更長。耐用的執行 SDK 對冷啟動效能的影響最小。如果冷啟動延遲對您的應用程式至關重要,請使用佈建並行。