【发布时间】:2021-02-11 01:06:26
【问题描述】:
我正在尝试使用 AWS SDK v2 在 Go 中编写事件处理程序,但我收到了 nil 指针取消引用错误,如您在以下代码块中所见:
{
"errorMessage": "runtime error: invalid memory address or nil pointer dereference",
"errorType": "errorString",
"stackTrace": [
{
"path": "github.com/aws/aws-lambda-go@v1.22.0/lambda/errors.go",
"line": 39,
"label": "lambdaPanicResponse"
},
{
"path": "github.com/aws/aws-lambda-go@v1.22.0/lambda/function.go",
"line": 36,
"label": "(*Function).Invoke.func1"
},
{
"path": "runtime/panic.go",
"line": 969,
"label": "gopanic"
},
{
"path": "runtime/panic.go",
"line": 212,
"label": "panicmem"
},
{
"path": "runtime/signal_unix.go",
"line": 742,
"label": "sigpanic"
},
{
"path": "eventHandler/main.go",
"line": 252,
"label": "getTargetGroup"
},
{
"path": "eventHandler/main.go",
"line": 187,
"label": "HandleRequest"
},
{
"path": "reflect/value.go",
"line": 476,
"label": "Value.call"
},
{
"path": "reflect/value.go",
"line": 337,
"label": "Value.Call"
},
{
"path": "github.com/aws/aws-lambda-go@v1.22.0/lambda/handler.go",
"line": 124,
"label": "NewHandler.func1"
},
{
"path": "github.com/aws/aws-lambda-go@v1.22.0/lambda/handler.go",
"line": 24,
"label": "lambdaHandler.Invoke"
},
{
"path": "github.com/aws/aws-lambda-go@v1.22.0/lambda/function.go",
"line": 64,
"label": "(*Function).Invoke"
},
{
"path": "reflect/value.go",
"line": 476,
"label": "Value.call"
},
{
"path": "reflect/value.go",
"line": 337,
"label": "Value.Call"
},
{
"path": "net/rpc/server.go",
"line": 377,
"label": "(*service).call"
},
{
"path": "runtime/asm_amd64.s",
"line": 1374,
"label": "goexit"
}
]
}
我的导入语句如下。如您所见,我正在导入 lambda-go 运行时:
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
"github.com/aws/aws-sdk-go-v2/service/ecs"
"github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2"
"github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
"log"
"strings"
"time"
)
我的代码如下所示:
func main() {
lambda.Start(HandleRequest)
}
func HandleRequest(e ECSEvent) error {...}
处理程序签名中的 ECSEvent 是一个与传入 EventBridge 事件匹配的结构。让 Go SDK v2 与 Lambda 一起工作有什么技巧吗?
【问题讨论】:
标签: aws-lambda aws-sdk-go