我正在尝试使用AWS SDK v2在Go中编写一个事件处理程序,但我得到了零指针引用错误,如您在以下代码块中所看到的:
{
"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"
}
]
}我的import语句如下。如您所见,我正在导入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一起工作有什么窍门吗?
发布于 2021-02-11 01:06:26
lambda函数没有执行AWS API调用的权限。
https://stackoverflow.com/questions/66139494
复制相似问题