为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 使用 aws lambda 错误:调用输入未由包 lambda 声明

Golang 使用 aws lambda 错误:调用输入未由包 lambda 声明

Go
慕妹3146593 2022-10-04 19:45:14
我正在尝试使用以下代码调用另一个 lambda 函数:sess := session.Must(  session.NewSessionWithOptions(    session.Options{      SharedConfigState: session.SharedConfigEnable,    },  ),)svc := lambda.New(sess, &aws.Config{Region: aws.String("ap-east-1")})result, err := svc.Invoke(&lambda.InvokeInput{  FunctionName: aws.String(os.Getenv("testLambdaFunc")),  Payload:      []byte(req.Body),})但有两个错误New not declared by package lambda和InvokeInput not declared by package lambda我试图初始化go.mod文件,但它不能解决这两个错误。有什么想法吗?我的文件的导入:main.go    "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"和文件go.modmodule somefuncgo 1.16require (    github.com/aws/aws-lambda-go v1.27.0    github.com/aws/aws-sdk-go v1.40.59    pkg/log v0.0.0-00010101000000-000000000000)replace pkg/log => ./../../go/common/pkg/log
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

根据您截取的代码,看起来好像您正在使用适用于 Go V2 的 AWS 开发工具包。建议使用适用于 Go 的 AWS 开发工具包 V2(请查看迁移到适用于 Go 的 AWS 开发工具包 V2 文档)。

请初始化一个 Go 模块项目(如开发工具包的 Github 页面所述):

mkdir YOUR-PROJECT

cd YOUR-PROJECT

go mod init YOUR-PROJECT

按如下方式添加依赖项:


go get github.com/aws/aws-sdk-go-v2/aws

go get github.com/aws/aws-sdk-go-v2/config

go get github.com/aws/aws-sdk-go-v2/service/lambda

上述内容应提供一个工作项目,SDK 包的依赖项将在其中解析。


相应的 V2 代码将如下所示:


cfg, err := config.LoadDefaultConfig(context.TODO(),

    config.WithRegion("us-east-1"),

)

if err != nil {

    [...]

}


svc := lambda.NewFromConfig(cfg)


result, err := svc.Invoke(context.TODO(),

    &lambda.InvokeInput{

        FunctionName: aws.String(os.Getenv("testLambdaFunc")),

        Payload: []byte(req.Body),

    },

)


查看完整回答
反对 回复 2022-10-04
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号