| 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 |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
|
|