我试图使用以下代码调用另一个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.mod文件
module somefunc
go 1.16
require (
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发布于 2021-10-11 08:46:46
根据您的代码片段,看起来您正在使用AWS作为Go V2。建议对Go V2使用AWS (请查看迁移到AWS以获取Go V2文档)。
请初始化一个Go模块项目(如SDK的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),
},
)https://stackoverflow.com/questions/69523051
复制相似问题