This repository has been archived by the owner on Dec 5, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathserverless.yml
140 lines (128 loc) · 4.3 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
service:
name: codesandbox-imager
runtime: nodejs6.10
custom:
s3Bucket: ${opt:stage}.imager.images
region: eu-west-1
serverless-offline:
port: 5600
provider:
name: aws
runtime: nodejs6.10
memorySize: 1536
timeout: 300
region: ${self:custom.region}
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:*"
Resource: "arn:aws:s3:::${self:custom.s3Bucket}/*"
environment:
IN_LAMBDA: "true"
SERVERLESS_STAGE: ${opt:stage}
BUCKET_NAME: ${self:custom.s3Bucket}
plugins:
- serverless-webpack
- serverless-plugin-warmup
- serverless-offline
functions:
imager:
handler: src/index.handler
warmup: prod
package:
include:
- src/bin/**
# 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:
ImageS3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:custom.s3Bucket}
ImageS3BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: ImageS3Bucket
PolicyDocument:
Statement:
- Sid: PublicReadGetObject
Effect: Allow
Principal: "*"
Action:
- s3:GetObject
Resource: arn:aws:s3:::${self:custom.s3Bucket}/*
# ImageS3LoggingBucket:
# Type: AWS::S3::Bucket
# Properties:
# BucketName: packager.distribution.logging
# ImageS3BucketCDN:
# Type: AWS::CloudFront::Distribution
# Properties:
# DistributionConfig:
# Origins:
# - DomainName: ${self:custom.s3Bucket}.s3.amazonaws.com
# ## An identifier for the origin which must be unique within the distribution
# Id: ImageS3Bucket
# CustomOriginConfig:
# HTTPPort: 80
# HTTPSPort: 443
# OriginProtocolPolicy: https-only
# ## In case you want to restrict the bucket access use S3OriginConfig and remove CustomOriginConfig
# # S3OriginConfig:
# # OriginAccessIdentity: origin-access-identity/cloudfront/E127EXAMPLE51Z
# Enabled: 'true'
# ## Uncomment the following section in case you are using a custom domain
# # Aliases:
# # - mysite.example.com
# # DefaultRootObject: index.html
# CustomErrorResponses:
# - ErrorCode: 500
# ErrorCachingMinTTL: 5
# - ErrorCode: 403
# ErrorCachingMinTTL: 0
# - ErrorCode: 404
# ErrorCachingMinTTL: 0
# DefaultCacheBehavior:
# Compress: 'true'
# AllowedMethods:
# - DELETE
# - GET
# - HEAD
# - OPTIONS
# - PATCH
# - POST
# - PUT
# ## The origin id defined above
# TargetOriginId: ImageS3Bucket
# ## Defining if and how the QueryString and Cookies are forwarded to the origin which in this case is S3
# ForwardedValues:
# QueryString: 'false'
# Cookies:
# Forward: none
# ## The protocol that users can use to access the files in the origin. To allow HTTP use `allow-all`
# ViewerProtocolPolicy: redirect-to-https
# ## The certificate to use when viewers use HTTPS to request objects.
# ViewerCertificate:
# CloudFrontDefaultCertificate: 'true'
# ## Uncomment the following section in case you want to enable logging for CloudFront requests
# # Logging:
# # IncludeCookies: 'false'
# # Bucket: packager.distribution.logging.s3.amazonaws.com
# # Prefix: packagers3logging
# Outputs:
# S3PackagesCloudFrontOutput:
# Value:
# 'Fn::GetAtt': [ ImageS3BucketCDN, DomainName ]
# imports:
# - path: my_template.jinja