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

AWS StateMachine调用PutLogEvents无报错但CloudWatch日志未显示

排查CloudWatch日志不显示的可能原因
  • 时间戳异常
    你提供的Timestamp值1396035378988对应2014年4月左右的时间,CloudWatch控制台默认展示最近时段的日志(比如最近1小时)。如果日志时间不在当前查看的时间区间内,就会无法看到。
    解决方法:调整控制台的时间范围到对应历史时段,或者将Timestamp设置为当前毫秒级时间戳(比如使用$$.Execution.StartTime或当前Unix时间戳乘以1000)。

  • 日志流匹配问题
    你指定的LogStreamName是MyStream,但AWS Step Functions的托管日志组(/aws/vendedlogs/states/...)通常自动生成包含执行ID、状态机ID的日志流名称。如果这个MyStream是手动指定的新流,你可能在控制台找错了日志流;如果该流未被StateMachine的日志配置关联,也会导致你在StateMachine的默认日志视图里看不到,需要手动切换到对应日志流查看。

  • 序列令牌未正确处理
    调用PutLogEvents时,第一次写入新日志流不需要SequenceToken,但后续写入必须携带上一次调用返回的NextSequenceToken。如果未正确传递这个令牌,即使调用无报错,日志也可能无法追加。
    第一次调用示例(无需令牌):

    {
      "LogEvents": [
        {
          "Message": "My message",
          "Timestamp": 1720000000000
        }
      ],
      "LogGroupName": "/aws/vendedlogs/states/MyStateMachine-wc8i8hnaf-Logs",
      "LogStreamName": "MyStream"
    }
    

    后续调用必须包含返回的NextSequenceToken:

    {
      "LogEvents": [
        {
          "Message": "Another message",
          "Timestamp": 1720000010000
        }
      ],
      "LogGroupName": "/aws/vendedlogs/states/MyStateMachine-wc8i8hnaf-Logs",
      "LogStreamName": "MyStream",
      "SequenceToken": "xxxxxx"
    }
    
  • 托管日志组的过滤规则
    /aws/vendedlogs/states/...是Step Functions的托管日志组,可能默认带有日志过滤规则,只展示StateMachine自动生成的日志,自定义写入的日志被过滤。你可以检查该日志组的订阅过滤器或日志过滤设置,确认是否有规则拦截了自定义日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 00:02:44