service: slide-creation-node-dev provider: name: aws region: ap-south-1 stage: ${opt:stage, 'dev'} memorySize: 2048 timeout: 900 environment: ASSETS_BUCKET: tech-learn-state OUTPUT_S3_BUCKET: tech-learn-state OUTPUT_S3_KEY: "output/slides_video.mp4" STATE_FILE_PREFIX: "video_states/" OPENAI_API_KEY: ${env:OPENAI_API_KEY} GEMINI_API_KEY: ${env:GEMINI_API_KEY} ANTHROPIC_API_KEY: ${env:ANTHROPI_API_KEY} PYTHONIOENCODING: "utf-8" DYNAMO_TABLE: SessionTracking COURSE_TABLE: CourseTracking iam: role: statements: - Effect: "Allow" Action: - "s3:GetObject" - "s3:PutObject" - "s3:ListBucket" Resource: - "arn:aws:s3:::${self:provider.environment.ASSETS_BUCKET}" - "arn:aws:s3:::${self:provider.environment.ASSETS_BUCKET}/*" - Effect: "Allow" Action: - "logs:CreateLogGroup" - "logs:CreateLogStream" - "logs:PutLogEvents" Resource: "arn:aws:logs:${aws:region}:${aws:accountId}:log-group:/aws/lambda/*:*" - Effect: "Allow" Action: - "dynamodb:PutItem" - "dynamodb:UpdateItem" - "dynamodb:GetItem" Resource: - "arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:provider.environment.DYNAMO_TABLE}" - "arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:provider.environment.COURSE_TABLE}" functions: slideCreationNode: name: slide-creation-node-${self:provider.stage} image: 471112784201.dkr.ecr.ap-south-1.amazonaws.com/techlearn/slide_creation_node_dev:latest memorySize: 8192 ephemeralStorageSize: 5120 events: - http: path: /generate-slides method: post cors: true # resources: # Resources: # SlideCreationNodeLogGroup: # Type: AWS::Logs::LogGroup # Properties: # LogGroupName: /aws/lambda/slide-creation-node-${self:provider.stage} # RetentionInDays: 14