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  }