This repository was archived by the owner on Oct 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathModule.yml
87 lines (76 loc) · 2.47 KB
/
Module.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
# LambdaSharp (λ#)
# Copyright (C) 2018-2019
# lambdasharp.net
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
Module: Demo.StaticWebsite
Description: Static website with pre-populated assets and a configurable title and message
Using:
- Module: LambdaSharp.S3.IO@lambdasharp
Items:
# Get site configuration settings
- Parameter: Title
Description: Website title
Section: Website Settings
Label: Website Title
- Parameter: Greeting
Description: Website greeting
Section: Website Settings
Label: Website Greeting
# Write the site configuration settings to a JSON file in the S3 bucket
- Resource: WebsiteConfigJson
Type: LambdaSharp::S3::WriteJson
Properties:
Bucket: !Ref WebsiteBucket
Key: config.json
Contents:
title: !Ref Title
message: !Ref Greeting
# Create bucket to host website
- Resource: WebsiteBucket
Description: S3 bucket for hosting website assets
Type: AWS::S3::Bucket
Properties:
WebsiteConfiguration:
ErrorDocument: error/index.html
IndexDocument: index.html
- Resource: WebsiteBucketPolicy
Description: Public access policy
Type: AWS::S3::BucketPolicy
Properties:
PolicyDocument:
Id: WebsiteBucket
Version: 2012-10-17
Statement:
- Sid: PublicReadForGetBucketObjects
Effect: Allow
Principal: '*'
Action: s3:GetObject
Resource: !Sub "${WebsiteBucket.Arn}/*"
Bucket: !Ref WebsiteBucket
DependsOn: DeployWebsiteFiles
- Package: WebsiteFiles
Description: Website files to deploy
Files: wwwroot/
- Resource: DeployWebsiteFiles
Type: LambdaSharp::S3::Unzip
Properties:
SourceBucket: !Ref DeploymentBucketName
SourceKey: !Ref WebsiteFiles
DestinationBucket: !Ref WebsiteBucket
DestinationKey: ""
# Export website url
- Variable: WebsiteUrl
Description: Website URL
Scope: public
Value: !GetAtt WebsiteBucket.WebsiteURL