AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: Simple CRUD web service. State is stored in a DynamoDB table. Resources: ProductGetFunction: Type: AWS::Serverless::Function Properties: Handler: product-manager.get #TODO: Add reference to Layers Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBReadOnlyAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: GetResource: Type: Api Properties: Path: /product/{resourceId} Method: get ProductPutFunction: Type: AWS::Serverless::Function Properties: Handler: product-manager.put Layers: - !Ref DependencyLayer Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBFullAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: PutResource: Type: Api Properties: Path: /product/{resourceId} Method: put ProductDeleteFunction: Type: AWS::Serverless::Function Properties: Handler: product-manager.delete #TODO: Add reference to Layers Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBFullAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: DeleteResource: Type: Api Properties: Path: /product/{resourceId} Method: delete OrderGetFunction: Type: AWS::Serverless::Function Properties: Handler: order-manager.get #TODO: Add reference to Layers Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBReadOnlyAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: GetResource: Type: Api Properties: Path: /order/{resourceId} Method: get OrderPutFunction: Type: AWS::Serverless::Function Properties: Handler: order-manager.put #TODO: Add reference to Layers Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBFullAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: PutResource: Type: Api Properties: Path: /order/{resourceId} Method: put OrderDeleteFunction: Type: AWS::Serverless::Function Properties: Handler: order-manager.delete #TODO: Add reference to Layers Runtime: nodejs14.x Timeout: 5 Policies: - AmazonDynamoDBFullAccess - AmazonS3FullAccess Environment: Variables: LogsBucketName: !Join ['-', ['serverless-saas-layers-logs-tenant', !Ref "AWS::AccountId"]] Events: DeleteResource: Type: Api Properties: Path: /order/{resourceId} Method: delete #TODO: Add Layers definition here