github.com/mweagle/Sparta@v1.15.0/doc_sespermission_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 sesLambdaProcessor(ctx context.Context,
    11  	props map[string]interface{}) (map[string]interface{}, error) {
    12  	lambdaCtx, _ := lambdacontext.FromContext(ctx)
    13  	Logger().WithFields(logrus.Fields{
    14  		"RequestID":  lambdaCtx.AwsRequestID,
    15  		"Properties": props,
    16  	}).Info("Lambda event")
    17  	return props, nil
    18  }
    19  
    20  func ExampleSESPermission_messageBody() {
    21  	var lambdaFunctions []*LambdaAWSInfo
    22  	// Define the IAM role
    23  	roleDefinition := IAMRoleDefinition{}
    24  	sesLambda, _ := NewAWSLambda(LambdaName(sesLambdaProcessor),
    25  		sesLambdaProcessor,
    26  		roleDefinition)
    27  
    28  	// Add a Permission s.t. the Lambda function is automatically invoked
    29  	// in response to inbound email
    30  	lambdaSESPermission := SESPermission{
    31  		BasePermission: BasePermission{
    32  			SourceArn: "*",
    33  		},
    34  		InvocationType: "Event",
    35  	}
    36  	// Store the message body in a newly provisioned S3 bucket
    37  	bodyStorage, _ := lambdaSESPermission.NewMessageBodyStorageResource("MessageBody")
    38  	lambdaSESPermission.MessageBodyStorage = bodyStorage
    39  
    40  	// Add some custom ReceiptRules.
    41  	lambdaSESPermission.ReceiptRules = append(lambdaSESPermission.ReceiptRules,
    42  		ReceiptRule{
    43  			Name:       "Default",
    44  			Recipients: []string{},
    45  			TLSPolicy:  "Optional",
    46  		})
    47  	sesLambda.Permissions = append(sesLambda.Permissions, lambdaSESPermission)
    48  
    49  	lambdaFunctions = append(lambdaFunctions, sesLambda)
    50  	Main("SESLambdaApp", "Registers for SES events and saves the MessageBody", lambdaFunctions, nil, nil)
    51  }
    52  
    53  func ExampleSESPermission_headersOnly() {
    54  	var lambdaFunctions []*LambdaAWSInfo
    55  	// Define the IAM role
    56  	roleDefinition := IAMRoleDefinition{}
    57  	sesLambda, _ := NewAWSLambda(LambdaName(sesLambdaProcessor),
    58  		sesLambdaProcessor,
    59  		roleDefinition)
    60  
    61  	// Add a Permission s.t. the Lambda function is automatically invoked
    62  	// in response to inbound email
    63  	lambdaSESPermission := SESPermission{
    64  		BasePermission: BasePermission{
    65  			SourceArn: "*",
    66  		},
    67  		InvocationType: "Event",
    68  	}
    69  	// Add some custom ReceiptRules.  Rules will be inserted (evaluated) in their
    70  	// array rank order.
    71  	lambdaSESPermission.ReceiptRules = make([]ReceiptRule, 0)
    72  	lambdaSESPermission.ReceiptRules = append(lambdaSESPermission.ReceiptRules,
    73  		ReceiptRule{
    74  			Name:       "Special",
    75  			Recipients: []string{"somebody@mydomain.io"},
    76  			TLSPolicy:  "Optional",
    77  		})
    78  
    79  	lambdaSESPermission.ReceiptRules = append(lambdaSESPermission.ReceiptRules,
    80  		ReceiptRule{
    81  			Name:       "Default",
    82  			Recipients: []string{},
    83  			TLSPolicy:  "Optional",
    84  		})
    85  	sesLambda.Permissions = append(sesLambda.Permissions, lambdaSESPermission)
    86  
    87  	lambdaFunctions = append(lambdaFunctions, sesLambda)
    88  	Main("SESLambdaApp", "Registers for SES events", lambdaFunctions, nil, nil)
    89  }