github.com/mweagle/Sparta@v1.15.0/doc_workflowhooks_test.go (about) 1 package sparta 2 3 import ( 4 "archive/zip" 5 "context" 6 "io" 7 "strings" 8 9 "github.com/aws/aws-lambda-go/lambdacontext" 10 "github.com/aws/aws-sdk-go/aws/session" 11 "github.com/sirupsen/logrus" 12 ) 13 14 const userdataResourceContents = ` 15 { 16 "Hello" : "World", 17 }` 18 19 func helloZipLambda(ctx context.Context, 20 props map[string]interface{}) (string, error) { 21 lambdaCtx, _ := lambdacontext.FromContext(ctx) 22 Logger().WithFields(logrus.Fields{ 23 "RequestID": lambdaCtx.AwsRequestID, 24 "Properties": props, 25 }).Info("Lambda event") 26 return "Event processed", nil 27 } 28 29 func archiveHook(context map[string]interface{}, 30 serviceName string, 31 zipWriter *zip.Writer, 32 awsSession *session.Session, 33 noop bool, 34 logger *logrus.Logger) error { 35 36 logger.Info("Adding userResource") 37 resourceFileName := "userResource.json" 38 binaryWriter, binaryWriterErr := zipWriter.Create(resourceFileName) 39 if nil != binaryWriterErr { 40 return binaryWriterErr 41 } 42 userdataReader := strings.NewReader(userdataResourceContents) 43 _, copyErr := io.Copy(binaryWriter, userdataReader) 44 return copyErr 45 } 46 47 func ExampleWorkflowHooks() { 48 workflowHooks := WorkflowHooks{ 49 Archive: archiveHook, 50 } 51 52 var lambdaFunctions []*LambdaAWSInfo 53 helloWorldLambda, _ := NewAWSLambda("PreexistingAWSLambdaRoleName", 54 helloZipLambda, 55 nil) 56 lambdaFunctions = append(lambdaFunctions, helloWorldLambda) 57 MainEx("HelloWorldArchiveHook", 58 "Description for Hello World HelloWorldArchiveHook", 59 lambdaFunctions, 60 nil, 61 nil, 62 &workflowHooks, 63 false) 64 }