监控持久性函数
您可以使用 CloudWatch 指标、CloudWatch Logs 和跟踪来监控您的持久性函数。由于持久性函数可以长时间运行并跨越多个函数调用,因此监控它们需要了解它们独特的执行模式,包括检查点、状态转换和重放行为。
CloudWatch 指标
Lambda 自动向 CloudWatch 发布指标,无需额外收费。持久性函数提供标准 Lambda 指标之外的额外指标,以帮助您监控长时间运行的工作流、状态管理和资源利用率。
持久执行指标
Lambda 为持久执行发出以下指标:
| 指标 | 说明 |
|---|---|
ApproximateRunningDurableExecutions |
处于 RUNNING 状态的持久执行次数 |
ApproximateRunningDurableExecutionsUtilization |
您的账户当前正在使用的最大运行持久执行数配额百分比。 |
DurableExecutionDuration |
持久执行在 RUNNING 状态所经历的总耗时(以毫秒为单位)。 |
DurableExecutionStarted |
启动的持久执行数 |
DurableExecutionStopped |
使用 StopDurableExecution API 停止的持久执行次数 |
DurableExecutionSucceeded |
成功完成的持久执行次数 |
DurableExecutionFailed |
以失败状态完成的持久执行次数 |
DurableExecutionTimedOut |
超过其配置执行超时时间的持久执行次数 |
DurableExecutionOperations |
持久执行内执行的操作累计数量(最大数:3000) |
DurableExecutionStorageWrittenBytes |
持久执行所保留的累积数据量(以字节为单位)(最大值:100 MB) |
CloudWatch 指标
Lambda 发出持久性函数的标准调用、性能和并发指标。由于持久执行在通过检查点和重放的过程中会跨越多个函数调用,因此这些指标的行为与标准函数不同:
调用次数:统计每次函数调用,包括重放次数。单次持久执行可以生成多个调用数据点。
持续时间:分别测量每次函数调用。使用
DurableExecutionDuration计算一次持久执行所花费的总时间。错误:跟踪函数调用失败次数。将
DurableExecutionFailed用于执行级别的失败。
有关标准 Lambda 指标的完整列表,请参阅 Lambda 函数的指标类型。
创建 CloudWatch 警报
创建 CloudWatch 警报,以便在指标超过阈值时通知您。常见的警报包括:
ApproximateRunningDurableExecutionsUtilization超过配额的 80%DurableExecutionFailed增加到阈值以上DurableExecutionTimedOut表示执行超时DurableExecutionStorageWrittenBytes接近存储限制
有关更多信息,请参阅使用 CloudWatch 警报。
.EventBridge 事件
Lambda 将持久执行状态变更事件发布到 EventBridge。您可以使用这些事件来触发工作流、发送通知,或跟踪您所有持久性函数的执行生命周期变更。
持久执行状态变更事件
Lambda 在每次持久执行状态发生变化时,都会向 EventBridge 发送一个事件。这些事件具有以下特征:
源:
aws.lambda详细信息类型:
Durable Execution Status Change
状态变更事件会在以下执行状态下发布:
RUNNING:执行已启动SUCCEEDED:执行成功完成STOPPED:使用 StopDurableExecution API 停止的执行FAILED:执行失败,出现错误TIMED_OUT:执行超过了配置的超时时间
以下示例显示了持久执行状态变更事件:
{ "version": "0", "id": "d019b03c-a8a3-9d58-85de-241e96206538", "detail-type": "Durable Execution Status Change", "source": "aws.lambda", "account": "123456789012", "time": "2025-11-20T13:08:22Z", "region": "us-east-1", "resources": [], "detail": { "durableExecutionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST/durable-execution/090c4189-b18b-4296-9d0c-cfd01dc3a122/9f7d84c9-ea3d-3ffc-b3e5-5ec51c34ffc9", "durableExecutionName": "order-123", "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:2", "status": "RUNNING", "startTimestamp": "2025-11-20T13:08:22.345Z" } }
对于终端状态(SUCCEEDED、STOPPED、FAILED、TIMED_OUT),该事件包括一个指示执行何时完成的 endTimestamp 字段。
创建 EventBridge 规则
创建规则,将持久执行状态变更事件路由到 Amazon Simple Notification Service、Amazon Simple Queue Service 或其他 Lambda 函数等目标。
以下示例创建了一条规则,用于匹配所有持久执行状态变更:
{ "source": ["aws.lambda"], "detail-type": ["Durable Execution Status Change"] }
以下示例创建了一条规则,以仅匹配失败的执行:
{ "source": ["aws.lambda"], "detail-type": ["Durable Execution Status Change"], "detail": { "status": ["FAILED"] } }
以下示例创建了一条规则,用于匹配特定函数的状态变更:
{ "source": ["aws.lambda"], "detail-type": ["Durable Execution Status Change"], "detail": { "functionArn": [{ "prefix": "arn:aws:lambda:us-east-1:123456789012:function:my-function" }] } }
有关创建规则的更多信息,请参阅《EventBridge 用户指南》中的 Amazon EventBridge 教程。
Amazon X-Ray 跟踪
您可以在持久性函数上启用 X-Ray 跟踪。Lambda 会将 X-Ray 跟踪标头传递给持久执行,从而允许您跨工作流跟踪请求。
要使用 Lambda 控制台启用 X-Ray; 跟踪,请选择您的函数,然后选择配置、监控和操作工具,并在 X-Ray 下开启主动跟踪。
要使用 Amazon CLI 启用 X-Ray 跟踪:
aws lambda update-function-configuration \ --function-name my-durable-function \ --tracing-config Mode=Active
要使用 Amazon SAM 启用 Amazon X-Ray 跟踪:
Resources: MyDurableFunction: Type: AWS::Serverless::Function Properties: Tracing: Active DurableConfig: ExecutionTimeout: 3600
有关 X-Ray 的更多信息,请参阅 Amazon X-Ray 开发人员指南。