awslambdahandler
awslambdahandler
checks whether aws lambda handler signature is valid.
Valid AWS Lambda signatures are as follows
* func ()
* func () error
* func (TIn) error
* func () (TOut, error)
* func (TIn) (TOut, error)
* func (context.Context) error
* func (context.Context, TIn) error
* func (context.Context) (TOut, error)
* func (context.Context, TIn) (TOut, error)
Detection sample
package main
import (
"context"
"github.com/aws/aws-lambda-go/lambda"
)
type MyEvent struct {
Name string `json:"What is your name?"`
Age int `json:"How old are you?"`
}
type MyResponse struct {
Message string `json:"Answer:"`
}
func main() {
lambda.Start(MyHandle)
}
func MyHandle(context.Context, MyEvent) MyResponse {
return MyResponse{}
}
$ go vet -vettool=`which awslambdahandler` main.go
./main.go:19:14: lambda handler of "MyHandle" is invalid lambda signature, see https://pkg.go.dev/github.com/aws/aws-lambda-go/lambda#Start
For more detection samples, please see examples.
Usage
awslambdahandler
with go vet
go vet
is a Go standard tool for analyzing source code.
- Install
awslambdahandler
.
$ go install github.com/d-tsuji/awslambdahandler/cmd/awslambdahandler@latest
awslambdahandler
execute
$ go vet -vettool=`which awslambdahandler` main.go
./main.go:33:14: lambda handler of "MyHandle" is invalid lambda signature, see https://pkg.go.dev/github.com/aws/aws-lambda-go/lambda#Start