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

Golang调用AWS Lambda时报lambda包未声明InvokeInput、New错误如何解决

问题原因

你当前导入的github.com/aws/aws-lambda-go/lambda是AWS Lambda Go运行时库,仅用于编写Lambda函数的入口处理逻辑,不提供调用其他Lambda函数的相关API。你用到的New、InvokeInput属于AWS SDK for Go中的Lambda服务客户端组件,对应包未导入导致报错。

解决步骤

  • 第一步:修改main.go的导入声明,新增AWS SDK的Lambda服务包,为避免和已有运行时Lambda包重名,可设置别名:
import (
    "fmt"
    "os"
    "pkg/log"

    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    // 新增Lambda服务客户端包,设置别名lambdasvc避免冲突
    lambdasvc "github.com/aws/aws-sdk-go/service/lambda"
)
  • 第二步:修改你调用Lambda的代码,将原来调用runtime Lambda包的部分替换为别名调用:
sess := session.Must(
  session.NewSessionWithOptions(
    session.Options{
      SharedConfigState: session.SharedConfigEnable,
    },
  ),
)
// 用新增的lambdasvc别名创建客户端
svc := lambdasvc.New(sess, &aws.Config{Region: aws.String("ap-east-1")})
// InvokeInput也改为从lambdasvc别名引用
result, err := svc.Invoke(&lambdasvc.InvokeInput{
  FunctionName: aws.String(os.Getenv("testLambdaFunc")),
  Payload:      []byte(req.Body),
})
  • 第三步:在项目根目录执行命令拉取对应依赖:
go mod tidy

执行完成后编译运行即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:45:04