package main import ( "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/sts" ) func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { svc := sts.New(session.New()) input := &sts.GetCallerIdentityInput{} result, err := svc.GetCallerIdentity(input) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { default: fmt.Println(aerr.Error()) } } else { fmt.Println(err.Error()) } } response := fmt.Sprintf("{\"message\": \"Hello world\", \"account\": \"%v\"}", *result.Account) return events.APIGatewayProxyResponse{ Body: response, StatusCode: 200, }, nil } func main() { lambda.Start(handler) }