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  }