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

AWS Lambda Function接收POST请求时无法触发求助

排查S3触发Lambda无响应的配置问题

针对你遇到的S3上传文件未触发Go Lambda的问题,从AWS配置层面给出以下排查步骤:

  • 检查Lambda的资源策略
    确保S3服务有权调用你的Lambda函数。进入Lambda控制台→目标函数→配置→权限→资源策略,确认存在类似以下的策略(替换为你的桶ARN和Lambda ARN):

    {
      "Version": "2012-10-17",
      "Id": "example-ID",
      "Statement": [
        {
          "Sid": "example-sid",
          "Effect": "Allow",
          "Principal": {
            "Service": "s3.amazonaws.com"
          },
          "Action": "lambda:InvokeFunction",
          "Resource": "arn:aws:lambda:区域:账号ID:function:函数名",
          "Condition": {
            "ArnLike": {
              "AWS:SourceArn": "arn:aws:s3:::你的桶名"
            }
          }
        }
      ]
    }
    

    如果没有这个策略,可重新添加S3触发器让AWS自动生成,或手动配置该策略。

  • 验证S3事件通知配置

    • 确认事件类型:检查S3桶的事件通知是否选择了正确的触发事件(比如s3:ObjectCreated:*或s3:ObjectCreated:Put,控制台上传文件通常触发Put事件,而非POST);
    • 排查过滤规则:如果配置了前缀/后缀过滤,确保测试文件的路径、文件名符合过滤条件(比如前缀设为uploads/但测试文件直接传在桶根目录,就不会触发);
    • 确认目标Lambda:检查通知规则的目标是否是你配置的Lambda函数,ARN是否正确。
  • 查看CloudWatch日志
    进入Lambda控制台→目标函数→监控→查看日志:

    • 如果有调用记录但报错,说明触发成功但代码/执行环境存在问题;
    • 如果没有调用记录,说明触发链路存在问题(权限、事件配置错误)。
      也可开启S3桶的访问日志,查看S3是否尝试向Lambda发送通知请求及是否有错误返回。
  • 确认基础配置状态

    • 检查S3桶和Lambda函数是否在同一AWS区域,跨区域触发可能存在配置限制或延迟;
    • 在Lambda控制台的触发器标签页,确认S3触发器的状态为“Enabled”,未被禁用。
  • 验证Go Lambda部署包
    确认Go编译产物符合Lambda要求:

    • 使用GOOS=linux GOARCH=amd64 go build -o main main.go编译静态二进制文件;
    • 将编译后的main文件打包成zip上传,Handler设置为main。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:15:58