github.com/epsagon/epsagon-go@v1.39.0/example/sts_example/main.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"github.com/aws/aws-lambda-go/events"
     7  	"github.com/aws/aws-lambda-go/lambda"
     8  	"github.com/aws/aws-sdk-go-v2/aws/external"
     9  	"github.com/aws/aws-sdk-go-v2/service/sts"
    10  	"github.com/epsagon/epsagon-go/epsagon"
    11  	"log"
    12  )
    13  
    14  func ddbHandler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    15  	cfg, err := external.LoadDefaultAWSConfig()
    16  	if err != nil {
    17  		panic("Failed to load default aws config")
    18  	}
    19  	cfg.Region = "eu-west-1"
    20  	svc := epsagon.WrapAwsV2Service(sts.New(cfg)).(*sts.Client)
    21  	req := svc.GetCallerIdentityRequest(&sts.GetCallerIdentityInput{})
    22  
    23  	resp, err := req.Send(context.Background())
    24  	if err != nil {
    25  		return events.APIGatewayProxyResponse{
    26  			Body: fmt.Sprintf("GetCallerIdentityRequest Failed: %s\n%s",
    27  				resp.String(), err.Error()),
    28  			StatusCode: 500,
    29  		}, nil
    30  	}
    31  
    32  	log.Println("Successfully got caller identity request")
    33  	return events.APIGatewayProxyResponse{Body: "", StatusCode: 200}, nil
    34  }
    35  
    36  func main() {
    37  	log.Println("enter main")
    38  	config := epsagon.NewTracerConfig("ddb-test-go-v2", "")
    39  	config.Debug = true
    40  	lambda.Start(epsagon.WrapLambdaHandler(config, ddbHandler))
    41  	log.Println("exit main")
    42  }