github.com/mweagle/Sparta@v1.15.0/doc_cloudwatchevents_test.go (about) 1 package sparta 2 3 import ( 4 "context" 5 6 "github.com/aws/aws-lambda-go/lambdacontext" 7 "github.com/sirupsen/logrus" 8 ) 9 10 func cloudWatchEventProcessor(ctx context.Context, 11 event map[string]interface{}) (map[string]interface{}, error) { 12 13 lambdaCtx, _ := lambdacontext.FromContext(ctx) 14 Logger().WithFields(logrus.Fields{ 15 "RequestID": lambdaCtx.AwsRequestID, 16 }).Info("Request received") 17 Logger().Info("CloudWatch Event received") 18 return nil, nil 19 } 20 21 func ExampleCloudWatchEventsPermission() { 22 cloudWatchEventsLambda, _ := NewAWSLambda(LambdaName(cloudWatchEventProcessor), 23 cloudWatchEventProcessor, 24 IAMRoleDefinition{}) 25 26 cloudWatchEventsPermission := CloudWatchEventsPermission{} 27 cloudWatchEventsPermission.Rules = make(map[string]CloudWatchEventsRule) 28 cloudWatchEventsPermission.Rules["Rate5Mins"] = CloudWatchEventsRule{ 29 ScheduleExpression: "rate(5 minutes)", 30 } 31 cloudWatchEventsPermission.Rules["EC2Activity"] = CloudWatchEventsRule{ 32 EventPattern: map[string]interface{}{ 33 "source": []string{"aws.ec2"}, 34 "detail-type": []string{"EC2 Instance State-change Notification"}, 35 }, 36 } 37 cloudWatchEventsLambda.Permissions = append(cloudWatchEventsLambda.Permissions, 38 cloudWatchEventsPermission) 39 var lambdaFunctions []*LambdaAWSInfo 40 lambdaFunctions = append(lambdaFunctions, cloudWatchEventsLambda) 41 Main("CloudWatchLogs", "Registers for CloudWatch Logs", lambdaFunctions, nil, nil) 42 }