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  }