app: secret-santa service: secret-santa frameworkVersion: '3' configValidationMode: error provider: name: aws runtime: python3.11 region: eu-west-1 environment: SECRETSANTA_SERVER_URL: "https://foo.bar" SECRETSANTA_S3_BUCKET_NAME: ${env:SECRETSANTA_S3_BUCKET_NAME} SECRETSANTA_S3_ACCESS_KEY_ID: ${env:SECRETSANTA_S3_ACCESS_KEY_ID} SECRETSANTA_S3_SECRET_ACCESS_KEY: ${env:SECRETSANTA_S3_SECRET_ACCESS_KEY} package: excludeDevDependencies: true individually: false patterns: - '!./**' - ./*.py - ../../../secretsanta/**.py custom: pythonRequirements: dockerizePip: true zip: true slim: true layer: true prune: automatic: true includeLayers: true number: 1 apiGatewayCaching: enabled: true apiGatewayThrottling: maxRequestsPerSecond: 100 maxConcurrentRequests: 5 plugins: - serverless-python-requirements - serverless-offline - serverless-prune-plugin - serverless-api-gateway-caching - serverless-api-gateway-throttling functions: get_participants: handler: app.get_participants layers: - Ref: PythonRequirementsLambdaLayer events: - httpApi: path: /api/v1/groups/{group_uuid} method: get create_group: handler: app.create_group layers: - Ref: PythonRequirementsLambdaLayer events: - httpApi: path: /api/v1/groups/{group_uuid} method: put get_pair: handler: app.get_pair layers: - Ref: PythonRequirementsLambdaLayer events: - httpApi: path: /api/v1/groups/{group_uuid}/pair/{participant} method: get