forked from codesandbox/dependency-packager
-
Notifications
You must be signed in to change notification settings - Fork 0
/
serverless.yml
114 lines (103 loc) · 2.64 KB
/
serverless.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
service:
name: codesandbox-packager-v2
runtime: nodejs8.10
custom:
s3Bucket: ${opt:stage}-${opt:s3prefix, 'packager'}-packages.codesandbox.io
region: eu-west-1
serverless-offline:
port: 5600
provider:
name: aws
runtime: nodejs8.10
memorySize: 3008
timeout: 300
region: ${self:custom.region}
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:*"
- "s3:DeleteObject"
Resource: "arn:aws:s3:::${self:custom.s3Bucket}/*"
- Effect: "Allow"
Action:
- "lambda:InvokeFunction"
Resource: "*"
environment:
IN_LAMBDA: "true"
SERVERLESS_STAGE: ${opt:stage}
BUCKET_NAME: ${self:custom.s3Bucket}
plugins:
- serverless-plugin-warmup
- serverless-offline
# needs more granular excluding in production as only the serverless provider npm
# package should be excluded (and not the whole node_modules directory)
package:
exclude:
- .gitignore
- .git/**
- functions/**
include:
- dist/**
- ./environment.json
functions:
api:
handler: dist/api/index.http
warmup: prod
memorySize: 1024 # optional, in MB, default is 1024
package:
exclude:
- dist/**
- functions/**
- manifests/**
- packages/**
include:
- dist/api/**
events:
- http:
path: /packages/{packages}
method: post
cors: true
request:
parameters:
paths:
id: true
packager:
handler: dist/packager/index.call
package:
exclude:
- dist/**
- functions/**
- manifests/**
- packages/**
include:
- dist/packager/**
# NOTE: the following uses an "event" event (pubSub event in this case).
# Please create the corresponding resources in the Google Cloud
# before deploying this service through Serverless
#second:
# handler: event
# events:
# - event:
# eventType: providers/cloud.pubsub/eventTypes/topic.publish
# resource: projects/*/topics/my-topic
# you can define resources, templates etc. the same way you would in a
# Google Cloud deployment configuration
resources:
Resources:
PackageS3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:custom.s3Bucket}
PackageS3BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: PackageS3Bucket
PolicyDocument:
Statement:
- Sid: PublicReadGetObject
Effect: Allow
Principal: "*"
Action:
- s3:GetObject
Resource: arn:aws:s3:::${self:custom.s3Bucket}/*