监控持久性函数 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

监控持久性函数

您可以使用 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" } }

对于终端状态(SUCCEEDEDSTOPPEDFAILEDTIMED_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 开发人员指南