本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支援耐用函數的執行時間
耐用的函數適用於 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。
容器映像
您可以搭配容器映像使用耐久的函數,以支援其他執行時間版本或自訂執行時間組態。容器映像可讓您使用不可用作受管執行期的執行期版本,或自訂執行期環境。
若要使用容器映像建立耐用的函數:
根據 Lambda 基礎映像建立 Dockerfile
在容器中安裝耐用的執行 SDK
建置容器映像並將其推送至 Amazon Elastic Container Registry
從已啟用持久性執行的容器映像建立 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 對冷啟動效能的影響最小。如果冷啟動延遲對您的應用程式至關重要,請使用佈建並行。