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