AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: Image resizing service Parameters: SourceBucketName: Type: String DestinationBucketName: Type: String Resources: ## S3 bucket SourceBucket: Type: AWS::S3::Bucket Properties: BucketName: !Ref SourceBucketName DestinationBucket: Type: AWS::S3::Bucket Properties: BucketName: !Ref DestinationBucketName ## Lambda function ResizerFunction: Type: AWS::Serverless::Function Properties: CodeUri: code/ Handler: app.handler Runtime: nodejs12.x MemorySize: 2048 Layers: - !Sub 'arn:aws:lambda:${AWS::Region}:175033217214:layer:graphicsmagick:2' Policies: - S3ReadPolicy: BucketName: !Ref SourceBucketName - S3CrudPolicy: BucketName: !Ref DestinationBucketName Environment: Variables: DESTINATION_BUCKETNAME: !Ref DestinationBucketName Events: FileUpload: Type: S3 Properties: Bucket: !Ref SourceBucket Events: s3:ObjectCreated:* Filter: S3Key: Rules: - Name: suffix Value: '.jpg'