180 lines
4.6 KiB
YAML
180 lines
4.6 KiB
YAML
service: cad-lambdas
|
|
# app and org for use with dashboard.serverless.com
|
|
#app: your-app-name
|
|
#org: your-org-name
|
|
|
|
# plugins:
|
|
# - serverless-offline
|
|
|
|
# You can pin your service to only deploy with a specific Serverless version
|
|
# Check out our docs for more details
|
|
frameworkVersion: '2'
|
|
|
|
provider:
|
|
name: aws
|
|
lambdaHashingVersion: 20201221
|
|
ecr:
|
|
images:
|
|
# this image is built locally and push to ECR
|
|
openscadimage:
|
|
path: ./
|
|
file: ./openscad/Dockerfile
|
|
cadqueryimage:
|
|
path: ./
|
|
file: ./cadquery/Dockerfile
|
|
apiGateway:
|
|
metrics: true
|
|
binaryMediaTypes:
|
|
# we need to allow binary types to be able to send back images and stls, but it would be better to be more specific
|
|
# ie image/png etc. as */* treats everything as binary including the json body as the input the lambdas
|
|
# which mean we need to decode the input bode from base64, but the images break with anything other than */* :(
|
|
- '*/*'
|
|
|
|
# you can overwrite defaults here
|
|
# stage: dev
|
|
# region: us-east-1
|
|
|
|
# you can add statements to the Lambda function's IAM Role here
|
|
# iamRoleStatements:
|
|
# - Effect: "Allow"
|
|
# Action:
|
|
# - "s3:ListBucket"
|
|
# Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ] }
|
|
# - Effect: "Allow"
|
|
# Action:
|
|
# - "s3:PutObject"
|
|
# Resource:
|
|
# Fn::Join:
|
|
# - ""
|
|
# - - "arn:aws:s3:::"
|
|
# - "Ref" : "ServerlessDeploymentBucket"
|
|
# - "/*"
|
|
|
|
# you can define service wide environment variables here
|
|
# environment:
|
|
# variable1: value1
|
|
|
|
functions:
|
|
# see preflightoptions comment in openscad.js
|
|
preflightopenscadpreview:
|
|
image:
|
|
name: openscadimage
|
|
command:
|
|
- openscad.preflightOptions
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: openscad/preview
|
|
method: options
|
|
preflightopenscadstl:
|
|
image:
|
|
name: openscadimage
|
|
command:
|
|
- openscad.preflightOptions
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: openscad/stl
|
|
method: options
|
|
openscadpreview:
|
|
image:
|
|
name: openscadimage
|
|
command:
|
|
- openscad.preview
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: openscad/preview
|
|
method: post
|
|
timeout: 15
|
|
openscadstl:
|
|
image:
|
|
name: openscadimage
|
|
command:
|
|
- openscad.stl
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: openscad/stl
|
|
method: post
|
|
timeout: 30
|
|
|
|
preflightcadquerystl:
|
|
image:
|
|
name: cadqueryimage
|
|
command:
|
|
- cadquery.preflightOptions
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: cadquery/stl
|
|
method: options
|
|
cadquerystl:
|
|
image:
|
|
name: cadqueryimage
|
|
command:
|
|
- cadquery.stl
|
|
entryPoint:
|
|
- '/entrypoint.sh'
|
|
events:
|
|
- http:
|
|
path: cadquery/stl
|
|
method: post
|
|
timeout: 30
|
|
# The following are a few example events you can configure
|
|
# NOTE: Please make sure to change your handler code to work with those events
|
|
# Check the event documentation for details
|
|
# events:
|
|
# - httpApi:
|
|
# path: /users/create
|
|
# method: get
|
|
# - websocket: $connect
|
|
# - s3: ${env:BUCKET}
|
|
# - schedule: rate(10 minutes)
|
|
# - sns: greeter-topic
|
|
# - stream: arn:aws:dynamodb:region:XXXXXX:table/foo/stream/1970-01-01T00:00:00.000
|
|
# - alexaSkill: amzn1.ask.skill.xx-xx-xx-xx
|
|
# - alexaSmartHome: amzn1.ask.skill.xx-xx-xx-xx
|
|
# - iot:
|
|
# sql: "SELECT * FROM 'some_topic'"
|
|
# - cloudwatchEvent:
|
|
# event:
|
|
# source:
|
|
# - "aws.ec2"
|
|
# detail-type:
|
|
# - "EC2 Instance State-change Notification"
|
|
# detail:
|
|
# state:
|
|
# - pending
|
|
# - cloudwatchLog: '/aws/lambda/hello'
|
|
# - cognitoUserPool:
|
|
# pool: MyUserPool
|
|
# trigger: PreSignUp
|
|
# - alb:
|
|
# listenerArn: arn:aws:elasticloadbalancing:us-east-1:XXXXXX:listener/app/my-load-balancer/50dc6c495c0c9188/
|
|
# priority: 1
|
|
# conditions:
|
|
# host: example.com
|
|
# path: /hello
|
|
|
|
# Define function environment variables here
|
|
# environment:
|
|
# variable2: value2
|
|
|
|
# you can add CloudFormation resource templates here
|
|
#resources:
|
|
# Resources:
|
|
# NewResource:
|
|
# Type: AWS::S3::Bucket
|
|
# Properties:
|
|
# BucketName: my-new-bucket
|
|
# Outputs:
|
|
# NewOutput:
|
|
# Description: "Description for the output"
|
|
# Value: "Some output value"
|