github.com/mweagle/Sparta@v1.15.0/doc_snspermission_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 const snsTopic = "arn:aws:sns:us-west-2:123412341234:mySNSTopic" 11 12 func snsProcessor(ctx context.Context, 13 props map[string]interface{}) (map[string]interface{}, error) { 14 lambdaCtx, _ := lambdacontext.FromContext(ctx) 15 Logger().WithFields(logrus.Fields{ 16 "RequestID": lambdaCtx.AwsRequestID, 17 "Properties": props, 18 }).Info("Lambda event") 19 return props, nil 20 } 21 22 func ExampleSNSPermission() { 23 var lambdaFunctions []*LambdaAWSInfo 24 25 snsLambda, _ := NewAWSLambda(LambdaName(snsProcessor), 26 snsProcessor, 27 IAMRoleDefinition{}) 28 snsLambda.Permissions = append(snsLambda.Permissions, SNSPermission{ 29 BasePermission: BasePermission{ 30 SourceArn: snsTopic, 31 }, 32 }) 33 lambdaFunctions = append(lambdaFunctions, snsLambda) 34 Main("SNSLambdaApp", "Registers for SNS events", lambdaFunctions, nil, nil) 35 }