本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支援耐用函數的執行時間
耐用的函數可用於選取的受管執行期和 OCI 容器映像,以提高執行期版本的靈活性。您可以直接在主控台中使用受管執行時間,或透過infrastructure-as-code以程式設計方式建立 Node.js 和 Python 的耐用函數。Java (預覽版) 中的耐用函數目前只能透過容器映像部署。
Lambda 受管執行時間
當您在 Lambda 主控台中或使用 AWS CLI 搭配 --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}' 參數建立函數時,下列受管執行期支援耐久函數。如需 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
SDK 支援 JavaScript 和 TypeScript。對於 TypeScript 專案,開發套件包含類型定義。
Python
在 Python 專案中安裝 SDK:
pip install aws-durable-execution-sdk-python
Python SDK 使用同步方法,不需要 async/await。
Java (預覽版)
將相依性新增至 pom.xml:
<dependency> <groupId>software.amazon.lambda.durable</groupId> <artifactId>aws-durable-execution-sdk-java</artifactId> <version>VERSION</version> </dependency>
在 Java 專案中安裝 SDK:
mvn install
Java 開發套件的預覽版本可供使用。waitForCondition、 waitForCallback、平行和映射操作仍在開發中。
容器映像
您可以搭配容器映像使用耐用的函數,以支援其他執行時間版本或自訂執行時間組態。容器映像可讓您使用不可做為受管執行時間的執行時間版本,或自訂執行時間環境。
若要使用容器映像建立耐用的函數:
根據 Lambda 基礎映像建立 Dockerfile
在容器中安裝耐用的執行 SDK
建置容器映像並將其推送至 Amazon Elastic Container Registry
從已啟用持久性執行的容器映像建立 Lambda 函數
容器範例
建立 Dockerfile:
建置並推送映像:
# 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": 3600, "RetentionPeriodInDays": 7}'
如需搭配 Lambda 使用容器映像的詳細資訊,請參閱《Lambda 開發人員指南》中的建立 Lambda 容器映像。
執行時期考量
SDK 版本管理:在您的部署套件或容器映像中包含耐久的執行 SDK。這可確保函數使用特定的 SDK 版本,並且不受執行時間更新的影響。在 package.json或 中釘選 SDK 版本requirements.txt,以控制升級時間。
執行期更新: AWS 更新受管執行期,以包含安全性修補程式和錯誤修正。這些更新可能包含新的 SDK 版本。為了避免意外行為,請在部署套件中包含 開發套件,並在部署至生產環境之前進行徹底測試。
容器映像大小:容器映像的最大未壓縮大小為 10 GB。耐用的執行 SDK 為您的映像新增最小大小。使用多階段建置並移除不必要的相依性,以最佳化您的容器。
冷啟動效能:容器映像的冷啟動時間可能比受管執行時間更長。耐用的執行 SDK 對冷啟動效能的影響最小。如果冷啟動延遲對您的應用程式至關重要,請使用佈建並行。