Advertisement
killer_ash

Untitled

Apr 8th, 2024
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.43 KB | None | 0 0
  1. // dataLoader Queue
  2.     dataLoaderQueue := sqs.NewQueue(businessStack, jsii.String(ProjectPrefix+"DataLoaderQueue"), &sqs.QueueProps{
  3.         QueueName: jsii.String(ProjectPrefix + "DataLoaderQueue"),
  4.     })
  5.  
  6.     // Get a reference to an existing S3 bucket using its name
  7.     bucket := awss3.Bucket_FromBucketName(businessStack, jsii.String("snpos-dev"), jsii.String("snpos-dev"))
  8.  
  9.     // Configure S3 bucket events to trigger notifications to SQS
  10.     bucket.AddEventNotification(awss3.EventType_OBJECT_CREATED, awss3notifications.NewSqsDestination(dataLoaderQueue), &awss3.NotificationKeyFilter{
  11.         Prefix: jsii.String("data-loader/"),
  12.         Suffix: jsii.String(".csv"),
  13.     })
  14.  
  15.     // Handler for data loader
  16.     dataLoaderLambda := awscdklambdago.NewGoFunction(businessStack, jsii.String(ProjectPrefix+"DataLoaderLambda"), &awscdklambdago.GoFunctionProps{
  17.         FunctionName: jsii.String(ProjectPrefix + "DataLoaderLambda"),
  18.         Description:  jsii.String("Loads data to dynamodb through CSV files"),
  19.         Entry:        jsii.String("../lambda/data-loader"),
  20.         Runtime:      awslambda.Runtime_PROVIDED_AL2(),
  21.         MemorySize:   jsii.Number(256),
  22.         Role:         role,
  23.         Environment:  lambdaEnvironmentVariable,
  24.         // LogRetention: awslogs.RetentionDays_ONE_WEEK,
  25.     })
  26.  
  27.     dataLoaderEventSource := awslambdaeventsources.NewSqsEventSource(dataLoaderQueue, &awslambdaeventsources.SqsEventSourceProps{
  28.         BatchSize: jsii.Number(5),
  29.     })
  30.  
  31.     dataLoaderLambda.AddEventSource(dataLoaderEventSource)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement