This commit is contained in:
Khalim Conn-Kowlessar 2026-01-08 13:40:48 +00:00
parent 8439600463
commit ef350df6d8

View file

@ -1,18 +1,10 @@
service: retrofit-platform service: retrofit-platform
frameworkVersion: '3'
provider: provider:
name: aws name: aws
region: eu-west-2 region: eu-west-2
runtime: python3.11
architecture: x86_64 architecture: x86_64
# REQUIRED for TRUE image Lambdas in Serverless v3
ecr:
images:
modelEngineImage:
uri: ${env:ECR_URI}:${env:GITHUB_SHA}
environment: environment:
API_KEY: ${env:API_KEY} API_KEY: ${env:API_KEY}
ENVIRONMENT: ${env:ENVIRONMENT} ENVIRONMENT: ${env:ENVIRONMENT}
@ -27,6 +19,8 @@ provider:
DB_USERNAME: ${env:DB_USERNAME} DB_USERNAME: ${env:DB_USERNAME}
DB_PASSWORD: ${env:DB_PASSWORD} DB_PASSWORD: ${env:DB_PASSWORD}
DB_PORT: ${env:DB_PORT} DB_PORT: ${env:DB_PORT}
ECR_URI: ${env:ECR_URI}
GITHUB_SHA: ${env:GITHUB_SHA}
SAP_PREDICTIONS_BUCKET: ${env:SAP_PREDICTIONS_BUCKET} SAP_PREDICTIONS_BUCKET: ${env:SAP_PREDICTIONS_BUCKET}
CARBON_PREDICTIONS_BUCKET: ${env:CARBON_PREDICTIONS_BUCKET} CARBON_PREDICTIONS_BUCKET: ${env:CARBON_PREDICTIONS_BUCKET}
HEAT_PREDICTIONS_BUCKET: ${env:HEAT_PREDICTIONS_BUCKET} HEAT_PREDICTIONS_BUCKET: ${env:HEAT_PREDICTIONS_BUCKET}
@ -45,8 +39,6 @@ custom:
pythonRequirements: pythonRequirements:
fileName: backend/app/requirements/requirements.txt fileName: backend/app/requirements/requirements.txt
dockerizePip: true dockerizePip: true
pythonBin: python3.11
customDomain: customDomain:
domainName: api.${self:provider.environment.DOMAIN_NAME} domainName: api.${self:provider.environment.DOMAIN_NAME}
createRoute53Record: true createRoute53Record: true
@ -54,11 +46,7 @@ custom:
functions: functions:
# ─────────────────────────────────────────────
# ZIP-BASED FASTAPI LAMBDA
# ─────────────────────────────────────────────
fastapi-backend: fastapi-backend:
runtime: python3.11
handler: backend.app.main.handler handler: backend.app.main.handler
timeout: 600 timeout: 600
memorySize: 512 memorySize: 512
@ -68,29 +56,26 @@ functions:
path: /{proxy+} path: /{proxy+}
method: ANY method: ANY
# ─────────────────────────────────────────────
# TRUE CONTAINER-IMAGE LAMBDA (4GB+ SUPPORTED)
# ─────────────────────────────────────────────
model-engine-lambda: model-engine-lambda:
image: image:
name: modelEngineImage uri: ${env:ECR_URI}:${env:GITHUB_SHA}
timeout: 900 timeout: 900
memorySize: 4096 memorySize: 3008
role: EngineLambdaRole role: EngineLambdaRole
events: events:
- sqs: - sqs:
arn: arn:aws:sqs:${self:provider.region}:${aws:accountId}:model-engine-queue arn: arn:aws:sqs:${self:provider.region}:${aws:accountId}:model-engine-queue
batchSize: 1 batchSize: 1
maximumConcurrency: 12 maximumConcurrency: 12 # Heavily restricts concurrency to avoid overwhelming the ldmbda limits
resources: resources:
Resources: Resources:
EngineQueue: EngineQueue:
Type: AWS::SQS::Queue Type: AWS::SQS::Queue
Properties: Properties:
QueueName: model-engine-queue QueueName: model-engine-queue
VisibilityTimeout: 910 VisibilityTimeout: 910 # must be >= lambda timeout (900)
FastApiLambdaRole: FastApiLambdaRole:
Type: AWS::IAM::Role Type: AWS::IAM::Role