github.com/epsagon/epsagon-go@v1.39.0/example/api_gateway/main.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "log" 6 "net/http" 7 8 "github.com/aws/aws-lambda-go/events" 9 "github.com/aws/aws-lambda-go/lambda" 10 "github.com/epsagon/epsagon-go/epsagon" 11 epsagonhttp "github.com/epsagon/epsagon-go/wrappers/net/http" 12 ) 13 14 // Response is an API gateway response type 15 type Response events.APIGatewayProxyResponse 16 17 func myHandler(request events.APIGatewayProxyRequest) (Response, error) { 18 log.Println("In myHandler, received body: ", request.Body) 19 client := http.Client{Transport: epsagonhttp.NewTracingTransport()} 20 resp, err := client.Get("https://api.randomuser.me") 21 var body string 22 if err == nil { 23 defer resp.Body.Close() 24 bodyBytes, err := ioutil.ReadAll(resp.Body) 25 if err == nil { 26 body = string(bodyBytes) 27 } 28 } else { 29 log.Printf("Error in getting response: %+v\n", err) 30 } 31 return Response{Body: "yes: random user: " + body, StatusCode: 200}, nil 32 } 33 34 func main() { 35 log.Println("enter main") 36 config := epsagon.NewTracerConfig("epsagon-test-go", "") 37 lambda.Start(epsagon.WrapLambdaHandler(config, myHandler)) 38 }