Expliquez-moi s'il vous plaît quelle est la meilleure façon de tester localement la fonction lambda. J'ai utilisé sam local et cette solution https://github.com/lambci/docker-lambda
pour les tests, mais par exemple, lorsque j'appelle un lambda à partir d'une autre erreur se produit. En général, je ne peux pas créer de stubs pour les méthodes car lambda s'exécute dans un conteneur
Il y a quelques options. Les deux suivants sont populaires.
Voici comment je teste les fonctions lambda locales sans frameworks sans serveur, je lance un post HTTP sur local (configuration assez simple pour Go)
func HandleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
_, _ = pretty.Println("parsed:", request.Body)
return events.APIGatewayProxyResponse{Body: "response is working", StatusCode: 200}, nil
}
func main() {
environment := loadEnv()
if environment == "develop" {
router.NewRouter()
select {}
} else {
lambda.Start(lambdahandler.HandleRequest)
}
}
func MapToApiGateway(w http.ResponseWriter, r *http.Request) (interface{}, error) {
request := new(EmailResponderRequest)
if err := json.NewDecoder(r.Body).Decode(request); err != nil {
return err.Error(), err
}
apiGatewayRequest := mapHttpRequestToGatewayRequest(*request)
events, err := lambdahandler.HandleRequest(nil, apiGatewayRequest)
if err != nil {
return err.Error(), err
}
return events, nil
}