You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Step Function中追踪并行Lambda调用的错误日志?

追踪Step Functions中并行Lambda错误日志的实用方法

1. 从Step Functions执行详情直接跳转

在Step Functions控制台的执行历史中,找到失败的Lambda任务条目,展开该任务的详情,里面会关联对应Lambda的执行ARN或直接提供「查看日志」入口,点击即可跳转到CloudWatch中该次Lambda执行的专属日志流,无需手动搜索。对于并行分支,只需定位到失败的分支节点即可找到对应任务。

2. 注入唯一追踪ID关联日志

在Step Functions状态机定义里,给每个并行Lambda任务传入一个唯一追踪ID(比如结合$$.Execution.Id和分支索引,或生成UUID),作为Lambda的输入参数或环境变量。Lambda代码中将该ID嵌入每一条日志:

import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
    trace_id = event["trace_id"]
    logger.info(f"[TRACE_ID: {trace_id}] 执行逻辑开始")
    # 业务代码...

之后在CloudWatch日志中直接搜索该追踪ID,就能精准定位到对应执行的完整日志。

3. 用CloudWatch Insights过滤关联日志

利用Step Functions执行ID作为过滤条件,在CloudWatch Insights中执行查询,快速匹配对应Lambda日志:

fields @timestamp, @message, @logStream
| filter @message like 'StepFunctionsExecutionArn: arn:aws:states:xxx:xxx:execution:xxx:YOUR_EXECUTION_ID'
| sort @timestamp desc

Lambda默认日志会携带调用它的Step Functions执行ARN,通过该语句可直接筛选出当前Step Functions执行下所有Lambda的日志,再结合错误关键词缩小范围。

4. 开启X-Ray全链路追踪

给Step Functions和目标Lambda都开启X-Ray追踪功能,在X-Ray控制台中查看完整的并行调用链路。每个Lambda调用都会作为链路中的节点存在,点击失败节点即可直接查看对应的错误详情和关联日志,快速定位到出问题的并行分支。

5. 自定义错误信息回传至Step Functions

在Lambda中捕获异常,将错误详情、追踪ID等关键信息打包后抛出,让这些内容直接显示在Step Functions的执行历史中:

import json

def lambda_handler(event, context):
    try:
        # 业务逻辑代码
    except Exception as e:
        error_info = {
            "error_type": type(e).__name__,
            "error_msg": str(e),
            "trace_id": event["trace_id"],
            "key_log": "关键业务步骤日志片段"
        }
        raise Exception(json.dumps(error_info))

这样无需跳转日志平台,就能从Step Functions执行记录中获取初步错误线索,再通过trace_id去CloudWatch查找完整日志。

内容的提问来源于stack exchange,提问作者Darryl Sawyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:00:06