Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // dataLoader Queue
- dataLoaderQueue := sqs.NewQueue(businessStack, jsii.String(ProjectPrefix+"DataLoaderQueue"), &sqs.QueueProps{
- QueueName: jsii.String(ProjectPrefix + "DataLoaderQueue"),
- })
- // Get a reference to an existing S3 bucket using its name
- bucket := awss3.Bucket_FromBucketName(businessStack, jsii.String("snpos-dev"), jsii.String("snpos-dev"))
- // Configure S3 bucket events to trigger notifications to SQS
- bucket.AddEventNotification(awss3.EventType_OBJECT_CREATED, awss3notifications.NewSqsDestination(dataLoaderQueue), &awss3.NotificationKeyFilter{
- Prefix: jsii.String("data-loader/"),
- Suffix: jsii.String(".csv"),
- })
- // Handler for data loader
- dataLoaderLambda := awscdklambdago.NewGoFunction(businessStack, jsii.String(ProjectPrefix+"DataLoaderLambda"), &awscdklambdago.GoFunctionProps{
- FunctionName: jsii.String(ProjectPrefix + "DataLoaderLambda"),
- Description: jsii.String("Loads data to dynamodb through CSV files"),
- Entry: jsii.String("../lambda/data-loader"),
- Runtime: awslambda.Runtime_PROVIDED_AL2(),
- MemorySize: jsii.Number(256),
- Role: role,
- Environment: lambdaEnvironmentVariable,
- // LogRetention: awslogs.RetentionDays_ONE_WEEK,
- })
- dataLoaderEventSource := awslambdaeventsources.NewSqsEventSource(dataLoaderQueue, &awslambdaeventsources.SqsEventSourceProps{
- BatchSize: jsii.Number(5),
- })
- dataLoaderLambda.AddEventSource(dataLoaderEventSource)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement