-
Notifications
You must be signed in to change notification settings - Fork 0
/
serverless.yml
77 lines (71 loc) · 2.12 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
service: serverless-domain-forwarder
plugins:
- serverless-plugin-scripts
provider:
name: aws
runtime: nodejs6.10
region: eu-central-1
memorySize: 128
versionFunctions: false
custom:
conf: ${file(./config.js)}
scripts:
hooks:
'before:deploy:deploy': npm run test
functions:
forward:
handler: src/handlers.forward
name: ${self:custom.conf.namePrefix}-lambda
description: Forwards requests to the configured target domain.
events:
- http:
path: /
method: get
- http:
path: /{any+}
method: get
resources:
Resources:
CloudFrontDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- DomainName:
Fn::Join:
- ""
- - Ref: ApiGatewayRestApi
- ".execute-api."
- Ref: AWS::Region
- ".amazonaws.com"
Id: ${self:custom.conf.namePrefix}-lambda
CustomOriginConfig:
HTTPSPort: 443
OriginProtocolPolicy: https-only
OriginPath: /${self:provider.stage}
Enabled: true
DefaultCacheBehavior:
AllowedMethods:
- GET
- HEAD
- OPTIONS
TargetOriginId: ${self:custom.conf.namePrefix}-lambda
ForwardedValues:
QueryString: "false"
Cookies:
Forward: all
ViewerProtocolPolicy: allow-all
Aliases: ${self:custom.conf.domains}
ViewerCertificate:
CloudFrontDefaultCertificate: "true"
## To configure an AWS Certificate, remove the CloudFrontDefaultCertificate line above,
## uncomment the next lines and set the arn respectively.
#
# AcmCertificateArn: <arn:your-cert-arn>
# SslSupportMethod: sni-only
#
Comment: ${self:custom.conf.namePrefix}
Outputs:
CloudFrontDistributionOutput:
Value:
'Fn::GetAtt': [ CloudFrontDistribution, DomainName ]