Files
esdp/serverless/serverless.yml
2026-01-19 15:19:21 -08:00

111 lines
3.1 KiB
YAML

service: esdp-api
app: esdp-api-app
frameworkVersion: '4'
# Common parameters shared across all stages
custom:
commonParams:
es_user: Imex2
es_password: Patrick
hasura_secret_arn: arn:aws:secretsmanager:ca-central-1:714144183158:secret:esdp-hasura-credentials-s81i1u-BDFgPi
stages:
prod:
# Enables observability in the prod stage
observability: true
# Stage-specific parameter values for prod
params:
es_endpoint: https://insurtechtoolkit.com
domain: es.imex.online
beta:
observability: false
# Stage-specific parameter values for beta
params:
es_endpoint: https://4284-79073.el-alt.com
domain: beta.es.imex.online
alpha:
observability: false
# Stage-specific parameter values for alpha
params:
es_endpoint: https://4284-79287.el-alt.com
domain: alpha.es.imex.online
dev:
observability: false
# Stage-specific parameter values for dev
params:
es_endpoint: https://4284-79287.el-alt.com
domain: dev.es.imex.online
provider:
name: aws
runtime: nodejs22.x
region: ca-central-1
domain: ${param:domain}
httpApi: # This creates a cheaper, faster "HTTP API" Gateway
cors: true # Automatically configures CORS
build:
esbuild:
bundle: true
minify: false
sourcemap: true
exclude:
- '@aws-sdk/*'
target: node22
platform: node
functions:
vehicleType:
handler: src/handlers/vehicleType.handler
events:
- httpApi:
path: /vehicleType
method: post
scrub:
handler: src/handlers/scrub.handler
environment:
ES_ENDPOINT: ${param:es_endpoint}
ES_USER: ${self:custom.commonParams.es_user}
ES_PASSWORD: ${self:custom.commonParams.es_password}
events:
- httpApi:
path: /scrub
method: post
emsupload:
handler: src/handlers/emsupload.handler
environment:
ES_ENDPOINT: ${param:es_endpoint}
UPLOAD_BUCKET_NAME: ${self:service}-uploads-${sls:stage}
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:PutObjectAcl
- s3:GetObject
Resource:
- arn:aws:s3:::${self:service}-uploads-${sls:stage}/*
events:
- httpApi:
path: /emsupload
method: post
resources:
Resources:
UploadBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:service}-uploads-${sls:stage}
CorsConfiguration:
CorsRules:
- AllowedOrigins:
- '*'
AllowedMethods:
- PUT
- POST
AllowedHeaders:
- '*'