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

Go开发AWS Lambda函数无日志输出问题求助

排查Lambda Go函数日志无流问题的实用步骤
  • 先查Lambda执行角色的权限
    必须确保你的Lambda执行角色拥有logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents这三个CloudWatch Logs相关权限。默认的Lambda基础执行角色自带这些权限,但如果是自定义角色,很可能漏加了——没权限的话,函数根本没法把日志写到CloudWatch,自然看不到日志流。

  • 确认log.Print的输出路径没被改
    Go的log.Print默认输出到stdout/stderr,Lambda会自动捕获这两个流的内容。要是你自定义了log的输出目标(比如写到本地文件),Lambda就抓不到日志了。另外还要确认代码里的log.Print确实被执行到了——比如有没有提前return跳过了日志代码分支。

  • 检查函数是否真的被触发执行
    去Lambda控制台的「监控」标签页看调用次数,如果次数是0,说明测试根本没触发函数。比如测试事件格式错了导致函数初始化失败,或者执行超时被强制终止,这种情况不会生成日志流。

  • 直接去CloudWatch Logs控制台找日志组
    Lambda对应的日志组命名是/aws/lambda/[你的函数名],直接搜这个日志组:如果不存在,说明函数连日志组都创建不了,基本是权限问题;如果存在但没日志流,那要查函数执行时的错误。

  • 验证部署包是否正确
    Go的Lambda函数必须编译成Linux环境的二进制文件,而且部署包根目录要有可执行文件(blank-go示例里默认是bootstrap)。编译命令用GOOS=linux GOARCH=amd64 go build -o bootstrap main.go,打包的时候别把二进制文件放到子目录里,不然Lambda找不到执行文件,启动失败自然没日志。

  • 看测试页面的执行结果错误详情
    在测试页面的「执行结果」里,有没有初始化错误或者运行时错误?比如函数panic了没被捕获,可能日志还没发出去就被终止,这时候CloudWatch没日志流,但执行结果里会有错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:40:03