lamby 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +8 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Brewfile +5 -6
- data/CHANGELOG.md +9 -2
- data/Gemfile.lock +10 -3
- data/Pipfile +6 -5
- data/Pipfile.lock +351 -4
- data/README.md +77 -33
- data/bin/bootstrap +9 -20
- data/bin/setup +3 -9
- data/bin/update +7 -0
- data/lamby.gemspec +2 -0
- data/lib/lamby/railtie.rb +1 -0
- data/lib/lamby/ssm_parameter_store.rb +9 -0
- data/lib/lamby/templates.rake +37 -0
- data/lib/lamby/templates/api_gateway.rb +25 -0
- data/lib/lamby/templates/api_gateway/app.rb +10 -0
- data/{doc → lib/lamby/templates/api_gateway}/template.yaml +3 -5
- data/lib/lamby/templates/shared.rb +19 -0
- data/lib/lamby/templates/shared/build +23 -0
- data/lib/lamby/templates/shared/deploy +22 -0
- data/lib/lamby/version.rb +1 -1
- metadata +39 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8013b19c9361fe4a34b96607930c8591e805db0cc22e22a2c490cb95ea711ca7
|
|
4
|
+
data.tar.gz: 89ee1f0256188b82ae65f827c036d75373cb68196a90f32a478e512c31a94a8f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6da7008851be7f91d0e967434ef963e7d5d41c006122f4a8801cb8b3217d0504a7a2fcf97d55c4c83aad0f83914a4bb158628be5b749afdf1969e8e3fbd407fc
|
|
7
|
+
data.tar.gz: 1d81577d4640c7fa95b4f32e8aa40600607ac8aa87e395adc2e3c35d049260e2a829d2b77e9321988c77e756b8d7b5c003e93b6cacc4bbedb55ff37f9a59b47a
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.5.
|
|
1
|
+
2.5.5
|
data/.travis.yml
CHANGED
data/Brewfile
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
brew
|
|
6
|
-
cask "docker"
|
|
1
|
+
cask 'docker'
|
|
2
|
+
brew 'zlib'
|
|
3
|
+
brew 'rbenv'
|
|
4
|
+
brew 'pyenv'
|
|
5
|
+
brew 'pipenv'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Keep A Changelog!
|
|
2
2
|
|
|
3
|
+
See this http://keepachangelog.com link for information on how we want this documented formatted.
|
|
4
|
+
|
|
5
|
+
## v0.5.0
|
|
6
|
+
|
|
7
|
+
#### Added
|
|
8
|
+
|
|
9
|
+
* Template generators for first install. Ex: `./bin/rake -r lamby lamby:install:api_gateway`.
|
|
10
|
+
* New `Lamby::SsmParameterStore.get!` helper.
|
|
11
|
+
|
|
3
12
|
|
|
4
13
|
## v0.4.1
|
|
5
14
|
|
|
@@ -15,8 +24,6 @@
|
|
|
15
24
|
* File uploads in #33 using `CONTENT_TYPE` and `CONTENT_LENGTH`.
|
|
16
25
|
|
|
17
26
|
|
|
18
|
-
See this http://keepachangelog.com link for information on how we want this documented formatted.
|
|
19
|
-
|
|
20
27
|
## v0.3.2
|
|
21
28
|
|
|
22
29
|
#### Added
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
lamby (0.
|
|
4
|
+
lamby (0.5.0)
|
|
5
5
|
rack
|
|
6
6
|
rails
|
|
7
7
|
|
|
@@ -63,6 +63,7 @@ GEM
|
|
|
63
63
|
aws-sigv4 (1.1.0)
|
|
64
64
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
65
65
|
builder (3.2.3)
|
|
66
|
+
coderay (1.1.2)
|
|
66
67
|
concurrent-ruby (1.1.5)
|
|
67
68
|
crass (1.0.4)
|
|
68
69
|
erubi (1.8.0)
|
|
@@ -87,9 +88,12 @@ GEM
|
|
|
87
88
|
mocha (1.8.0)
|
|
88
89
|
metaclass (~> 0.0.1)
|
|
89
90
|
nio4r (2.3.1)
|
|
90
|
-
nokogiri (1.10.
|
|
91
|
+
nokogiri (1.10.3)
|
|
91
92
|
mini_portile2 (~> 2.4.0)
|
|
92
|
-
|
|
93
|
+
pry (0.12.2)
|
|
94
|
+
coderay (~> 1.1.0)
|
|
95
|
+
method_source (~> 0.9.0)
|
|
96
|
+
rack (2.0.7)
|
|
93
97
|
rack-test (1.1.0)
|
|
94
98
|
rack (>= 1.0, < 3)
|
|
95
99
|
rails (5.2.3)
|
|
@@ -124,6 +128,7 @@ GEM
|
|
|
124
128
|
actionpack (>= 4.0)
|
|
125
129
|
activesupport (>= 4.0)
|
|
126
130
|
sprockets (>= 3.0.0)
|
|
131
|
+
sqlite3 (1.4.1)
|
|
127
132
|
thor (0.20.3)
|
|
128
133
|
thread_safe (0.3.6)
|
|
129
134
|
tzinfo (1.2.5)
|
|
@@ -141,7 +146,9 @@ DEPENDENCIES
|
|
|
141
146
|
lamby!
|
|
142
147
|
minitest
|
|
143
148
|
mocha
|
|
149
|
+
pry
|
|
144
150
|
rake
|
|
151
|
+
sqlite3
|
|
145
152
|
|
|
146
153
|
BUNDLED WITH
|
|
147
154
|
1.17.3
|
data/Pipfile
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
[[source]]
|
|
2
|
+
name = "pypi"
|
|
2
3
|
url = "https://pypi.org/simple"
|
|
3
4
|
verify_ssl = true
|
|
4
|
-
name = "pypi"
|
|
5
|
-
|
|
6
|
-
[packages]
|
|
7
5
|
|
|
8
6
|
[dev-packages]
|
|
9
7
|
|
|
8
|
+
[packages]
|
|
9
|
+
awscli = ">=1.16.166"
|
|
10
|
+
aws-sam-cli = ">=0.16.1"
|
|
11
|
+
|
|
10
12
|
[requires]
|
|
11
|
-
python_version = "3.7"
|
|
12
|
-
awscli = "*"
|
|
13
|
+
python_version = "3.6.7"
|
data/Pipfile.lock
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_meta": {
|
|
3
3
|
"hash": {
|
|
4
|
-
"sha256": "
|
|
4
|
+
"sha256": "816a6a878711ca86e9fb35f0e63dbb285cc6a802fb7bfd64492477a7695a6bbd"
|
|
5
5
|
},
|
|
6
6
|
"pipfile-spec": 6,
|
|
7
7
|
"requires": {
|
|
8
|
-
"
|
|
9
|
-
"python_version": "3.7"
|
|
8
|
+
"python_version": "3.6.7"
|
|
10
9
|
},
|
|
11
10
|
"sources": [
|
|
12
11
|
{
|
|
@@ -16,6 +15,354 @@
|
|
|
16
15
|
}
|
|
17
16
|
]
|
|
18
17
|
},
|
|
19
|
-
"default": {
|
|
18
|
+
"default": {
|
|
19
|
+
"arrow": {
|
|
20
|
+
"hashes": [
|
|
21
|
+
"sha256:002f2315cf4c8404de737c42860441732d339bbc57fee584e2027520e055ecc1",
|
|
22
|
+
"sha256:82dd5e13b733787d4eb0fef42d1ee1a99136dc1d65178f70373b3678b3181bfc"
|
|
23
|
+
],
|
|
24
|
+
"version": "==0.13.2"
|
|
25
|
+
},
|
|
26
|
+
"aws-lambda-builders": {
|
|
27
|
+
"hashes": [
|
|
28
|
+
"sha256:427724b039409a05a706a3f8125cb88c3901527b1192f4da2588714103f68b08",
|
|
29
|
+
"sha256:9222fc6d6ac481bf5fa1849e2ae2b353eb38d310eea76606824c971b39482705",
|
|
30
|
+
"sha256:e7c06c79a9f031a461b00a7241396115cf3e5bed0db0d6c9763cfb2cde7779dd"
|
|
31
|
+
],
|
|
32
|
+
"version": "==0.3.0"
|
|
33
|
+
},
|
|
34
|
+
"aws-sam-cli": {
|
|
35
|
+
"hashes": [
|
|
36
|
+
"sha256:2dd68800723c76f52980141ba704e105d77469b6ba465781fbc9120e8121e76c",
|
|
37
|
+
"sha256:671fb8032625e560c271021e33b0f8592204025243e951c7bc215847aaa13c68",
|
|
38
|
+
"sha256:7bede6dff854037d49ff223e921d4bd55ff92e2765198df9596e34e254d5a57b"
|
|
39
|
+
],
|
|
40
|
+
"index": "pypi",
|
|
41
|
+
"version": "==0.16.1"
|
|
42
|
+
},
|
|
43
|
+
"aws-sam-translator": {
|
|
44
|
+
"hashes": [
|
|
45
|
+
"sha256:0e1fa094c6791b233f5e73f2f0803ec6e0622f2320ec5a969f0986855221b92b"
|
|
46
|
+
],
|
|
47
|
+
"version": "==1.10.0"
|
|
48
|
+
},
|
|
49
|
+
"awscli": {
|
|
50
|
+
"hashes": [
|
|
51
|
+
"sha256:734637607adf6034b0021073dd8582871dba2c97df0df4f443552574390def8e",
|
|
52
|
+
"sha256:a9b8a72f7a07b08be50eda14c4542fd14614aeecb73cf8477f8f92c403406c15"
|
|
53
|
+
],
|
|
54
|
+
"index": "pypi",
|
|
55
|
+
"version": "==1.16.166"
|
|
56
|
+
},
|
|
57
|
+
"binaryornot": {
|
|
58
|
+
"hashes": [
|
|
59
|
+
"sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061",
|
|
60
|
+
"sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"
|
|
61
|
+
],
|
|
62
|
+
"version": "==0.4.4"
|
|
63
|
+
},
|
|
64
|
+
"boto3": {
|
|
65
|
+
"hashes": [
|
|
66
|
+
"sha256:59782c178af2d5acf66315fe96b3cd1dc075109c0296c384e18a6c4143c0745d",
|
|
67
|
+
"sha256:758787b5ad7c5e2aa2979b0671129491fbab00a7b84a26532cd6b9d073ed862b"
|
|
68
|
+
],
|
|
69
|
+
"version": "==1.9.156"
|
|
70
|
+
},
|
|
71
|
+
"botocore": {
|
|
72
|
+
"hashes": [
|
|
73
|
+
"sha256:00b72bc2104a2f56513bc40ce380d0605262decc9fe3b2ce840da48f257598d7",
|
|
74
|
+
"sha256:a12a817bf1faf36837bc2d371aacfb5c7c324e0e9f0b3af94b9930cfcd8d62ea"
|
|
75
|
+
],
|
|
76
|
+
"version": "==1.12.156"
|
|
77
|
+
},
|
|
78
|
+
"certifi": {
|
|
79
|
+
"hashes": [
|
|
80
|
+
"sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
|
|
81
|
+
"sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"
|
|
82
|
+
],
|
|
83
|
+
"version": "==2019.3.9"
|
|
84
|
+
},
|
|
85
|
+
"chardet": {
|
|
86
|
+
"hashes": [
|
|
87
|
+
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
|
88
|
+
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
|
89
|
+
],
|
|
90
|
+
"version": "==3.0.4"
|
|
91
|
+
},
|
|
92
|
+
"chevron": {
|
|
93
|
+
"hashes": [
|
|
94
|
+
"sha256:95b0a055ef0ada5eb061d60be64a7f70670b53372ccd221d1b88adf1c41a9094",
|
|
95
|
+
"sha256:f95054a8b303268ebf3efd6bdfc8c1b428d3fc92327913b4e236d062ec61c989"
|
|
96
|
+
],
|
|
97
|
+
"version": "==0.13.1"
|
|
98
|
+
},
|
|
99
|
+
"click": {
|
|
100
|
+
"hashes": [
|
|
101
|
+
"sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
|
|
102
|
+
"sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
|
|
103
|
+
],
|
|
104
|
+
"version": "==6.7"
|
|
105
|
+
},
|
|
106
|
+
"colorama": {
|
|
107
|
+
"hashes": [
|
|
108
|
+
"sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda",
|
|
109
|
+
"sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"
|
|
110
|
+
],
|
|
111
|
+
"version": "==0.3.9"
|
|
112
|
+
},
|
|
113
|
+
"cookiecutter": {
|
|
114
|
+
"hashes": [
|
|
115
|
+
"sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e",
|
|
116
|
+
"sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36"
|
|
117
|
+
],
|
|
118
|
+
"version": "==1.6.0"
|
|
119
|
+
},
|
|
120
|
+
"dateparser": {
|
|
121
|
+
"hashes": [
|
|
122
|
+
"sha256:42d51be54e74a8e80a4d76d1fa6e4edd997098fce24ad2d94a2eab5ef247193e",
|
|
123
|
+
"sha256:78124c458c461ea7198faa3c038f6381f37588b84bb42740e91a4cbd260b1d09"
|
|
124
|
+
],
|
|
125
|
+
"version": "==0.7.1"
|
|
126
|
+
},
|
|
127
|
+
"docker": {
|
|
128
|
+
"hashes": [
|
|
129
|
+
"sha256:3db499d4d25847fed86acf8e100c989f7bc0f75a6fff6c52855726ada1d124f6",
|
|
130
|
+
"sha256:f61c37d721b489b7d55ef631b241be2d6a5884c3ffe63dc8f7dd9a3c3cd60489"
|
|
131
|
+
],
|
|
132
|
+
"version": "==4.0.1"
|
|
133
|
+
},
|
|
134
|
+
"docutils": {
|
|
135
|
+
"hashes": [
|
|
136
|
+
"sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6",
|
|
137
|
+
"sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274",
|
|
138
|
+
"sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6"
|
|
139
|
+
],
|
|
140
|
+
"version": "==0.14"
|
|
141
|
+
},
|
|
142
|
+
"flask": {
|
|
143
|
+
"hashes": [
|
|
144
|
+
"sha256:ad7c6d841e64296b962296c2c2dabc6543752985727af86a975072dea984b6f3",
|
|
145
|
+
"sha256:e7d32475d1de5facaa55e3958bc4ec66d3762076b074296aa50ef8fdc5b9df61"
|
|
146
|
+
],
|
|
147
|
+
"version": "==1.0.3"
|
|
148
|
+
},
|
|
149
|
+
"future": {
|
|
150
|
+
"hashes": [
|
|
151
|
+
"sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8"
|
|
152
|
+
],
|
|
153
|
+
"version": "==0.17.1"
|
|
154
|
+
},
|
|
155
|
+
"idna": {
|
|
156
|
+
"hashes": [
|
|
157
|
+
"sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
|
|
158
|
+
"sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
|
|
159
|
+
],
|
|
160
|
+
"version": "==2.7"
|
|
161
|
+
},
|
|
162
|
+
"itsdangerous": {
|
|
163
|
+
"hashes": [
|
|
164
|
+
"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
|
|
165
|
+
"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
|
|
166
|
+
],
|
|
167
|
+
"version": "==1.1.0"
|
|
168
|
+
},
|
|
169
|
+
"jinja2": {
|
|
170
|
+
"hashes": [
|
|
171
|
+
"sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013",
|
|
172
|
+
"sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b"
|
|
173
|
+
],
|
|
174
|
+
"version": "==2.10.1"
|
|
175
|
+
},
|
|
176
|
+
"jinja2-time": {
|
|
177
|
+
"hashes": [
|
|
178
|
+
"sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40",
|
|
179
|
+
"sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"
|
|
180
|
+
],
|
|
181
|
+
"version": "==0.2.0"
|
|
182
|
+
},
|
|
183
|
+
"jmespath": {
|
|
184
|
+
"hashes": [
|
|
185
|
+
"sha256:3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6",
|
|
186
|
+
"sha256:bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c"
|
|
187
|
+
],
|
|
188
|
+
"version": "==0.9.4"
|
|
189
|
+
},
|
|
190
|
+
"jsonschema": {
|
|
191
|
+
"hashes": [
|
|
192
|
+
"sha256:000e68abd33c972a5248544925a0cae7d1125f9bf6c58280d37546b946769a08",
|
|
193
|
+
"sha256:6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02"
|
|
194
|
+
],
|
|
195
|
+
"version": "==2.6.0"
|
|
196
|
+
},
|
|
197
|
+
"markupsafe": {
|
|
198
|
+
"hashes": [
|
|
199
|
+
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
|
|
200
|
+
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
|
|
201
|
+
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
|
|
202
|
+
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
|
|
203
|
+
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
|
|
204
|
+
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
|
|
205
|
+
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
|
|
206
|
+
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
|
|
207
|
+
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
|
|
208
|
+
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
|
|
209
|
+
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
|
|
210
|
+
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
|
|
211
|
+
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
|
|
212
|
+
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
|
|
213
|
+
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
|
|
214
|
+
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
|
|
215
|
+
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
|
|
216
|
+
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
|
|
217
|
+
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
|
|
218
|
+
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
|
|
219
|
+
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
|
|
220
|
+
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
|
|
221
|
+
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
|
|
222
|
+
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
|
|
223
|
+
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
|
|
224
|
+
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
|
|
225
|
+
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
|
|
226
|
+
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
|
|
227
|
+
],
|
|
228
|
+
"version": "==1.1.1"
|
|
229
|
+
},
|
|
230
|
+
"poyo": {
|
|
231
|
+
"hashes": [
|
|
232
|
+
"sha256:c34a5413191210ed564640510e9c4a4ba3b698746d6b454d46eb5bfb30edcd1d",
|
|
233
|
+
"sha256:d1c317054145a6b1ca0608b5e676b943ddc3bfd671f886a2fe09288b98221edb"
|
|
234
|
+
],
|
|
235
|
+
"version": "==0.4.2"
|
|
236
|
+
},
|
|
237
|
+
"pyasn1": {
|
|
238
|
+
"hashes": [
|
|
239
|
+
"sha256:da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7",
|
|
240
|
+
"sha256:da6b43a8c9ae93bc80e2739efb38cc776ba74a886e3e9318d65fe81a8b8a2c6e"
|
|
241
|
+
],
|
|
242
|
+
"version": "==0.4.5"
|
|
243
|
+
},
|
|
244
|
+
"python-dateutil": {
|
|
245
|
+
"hashes": [
|
|
246
|
+
"sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb",
|
|
247
|
+
"sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"
|
|
248
|
+
],
|
|
249
|
+
"markers": "python_version >= '2.7'",
|
|
250
|
+
"version": "==2.8.0"
|
|
251
|
+
},
|
|
252
|
+
"pytz": {
|
|
253
|
+
"hashes": [
|
|
254
|
+
"sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda",
|
|
255
|
+
"sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"
|
|
256
|
+
],
|
|
257
|
+
"version": "==2019.1"
|
|
258
|
+
},
|
|
259
|
+
"pyyaml": {
|
|
260
|
+
"hashes": [
|
|
261
|
+
"sha256:3d7da3009c0f3e783b2c873687652d83b1bbfd5c88e9813fb7e5b03c0dd3108b",
|
|
262
|
+
"sha256:3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf",
|
|
263
|
+
"sha256:40c71b8e076d0550b2e6380bada1f1cd1017b882f7e16f09a65be98e017f211a",
|
|
264
|
+
"sha256:558dd60b890ba8fd982e05941927a3911dc409a63dcb8b634feaa0cda69330d3",
|
|
265
|
+
"sha256:a7c28b45d9f99102fa092bb213aa12e0aaf9a6a1f5e395d36166639c1f96c3a1",
|
|
266
|
+
"sha256:aa7dd4a6a427aed7df6fb7f08a580d68d9b118d90310374716ae90b710280af1",
|
|
267
|
+
"sha256:bc558586e6045763782014934bfaf39d48b8ae85a2713117d16c39864085c613",
|
|
268
|
+
"sha256:d46d7982b62e0729ad0175a9bc7e10a566fc07b224d2c79fafb5e032727eaa04",
|
|
269
|
+
"sha256:d5eef459e30b09f5a098b9cea68bebfeb268697f78d647bd255a085371ac7f3f",
|
|
270
|
+
"sha256:e01d3203230e1786cd91ccfdc8f8454c8069c91bee3962ad93b87a4b2860f537",
|
|
271
|
+
"sha256:e170a9e6fcfd19021dd29845af83bb79236068bf5fd4df3327c1be18182b2531"
|
|
272
|
+
],
|
|
273
|
+
"version": "==3.13"
|
|
274
|
+
},
|
|
275
|
+
"regex": {
|
|
276
|
+
"hashes": [
|
|
277
|
+
"sha256:0ac2ba14f1e069507eec395140c0701045340f386a7ee7adb95961b3a2d821ef",
|
|
278
|
+
"sha256:3b90bfb577ba7ff2c25f74496096e8c2a92007b4c32108a7076d3b33a92ab357",
|
|
279
|
+
"sha256:455f29e0ad4a8002aed6a6c00c8054441dde03e25b1d622568afddb251439f14",
|
|
280
|
+
"sha256:6b957a06533fa7f070d339c1399fcc739d8b9b08f9d82c768e19bcf2b5cf5427",
|
|
281
|
+
"sha256:6fe1dd1d522062912e18d08f1ddd508431fdad7af2ebd80e035d74a1953e9e6a",
|
|
282
|
+
"sha256:7e3f1cbdd4d38dade6c880551fe7c2a2832635c743d9c8993785714615d7c08d",
|
|
283
|
+
"sha256:81f13830915fb3fe88d49e896a99a25eeb62dc1f3808c77bf3588fe8cdfcadc5",
|
|
284
|
+
"sha256:a5b17c52ce57657459162fb414f2ff8b85b7212921281ffe1ca63fb4105bee24",
|
|
285
|
+
"sha256:cc4dcdb1ee6fcb7d6a0b6eff4d86cb203b5b082719c94c88b7d7175c13691f92"
|
|
286
|
+
],
|
|
287
|
+
"version": "==2019.5.25"
|
|
288
|
+
},
|
|
289
|
+
"requests": {
|
|
290
|
+
"hashes": [
|
|
291
|
+
"sha256:65b3a120e4329e33c9889db89c80976c5272f56ea92d3e74da8a463992e3ff54",
|
|
292
|
+
"sha256:ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263"
|
|
293
|
+
],
|
|
294
|
+
"version": "==2.20.1"
|
|
295
|
+
},
|
|
296
|
+
"rsa": {
|
|
297
|
+
"hashes": [
|
|
298
|
+
"sha256:25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5",
|
|
299
|
+
"sha256:43f682fea81c452c98d09fc316aae12de6d30c4b5c84226642cf8f8fd1c93abd"
|
|
300
|
+
],
|
|
301
|
+
"version": "==3.4.2"
|
|
302
|
+
},
|
|
303
|
+
"s3transfer": {
|
|
304
|
+
"hashes": [
|
|
305
|
+
"sha256:7b9ad3213bff7d357f888e0fab5101b56fa1a0548ee77d121c3a3dbfbef4cb2e",
|
|
306
|
+
"sha256:f23d5cb7d862b104401d9021fc82e5fa0e0cf57b7660a1331425aab0c691d021"
|
|
307
|
+
],
|
|
308
|
+
"version": "==0.2.0"
|
|
309
|
+
},
|
|
310
|
+
"serverlessrepo": {
|
|
311
|
+
"hashes": [
|
|
312
|
+
"sha256:533389d41a51450e50cc01405ab766550170149c08e1c85b3a1559b0fab4cb25",
|
|
313
|
+
"sha256:d40e83d29175ba3eddaa02f1dac57332d1dec495e012cd2e80366be9ad7c94a5"
|
|
314
|
+
],
|
|
315
|
+
"version": "==0.1.8"
|
|
316
|
+
},
|
|
317
|
+
"six": {
|
|
318
|
+
"hashes": [
|
|
319
|
+
"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
|
|
320
|
+
"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
|
|
321
|
+
],
|
|
322
|
+
"version": "==1.11.0"
|
|
323
|
+
},
|
|
324
|
+
"tzlocal": {
|
|
325
|
+
"hashes": [
|
|
326
|
+
"sha256:4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e"
|
|
327
|
+
],
|
|
328
|
+
"version": "==1.5.1"
|
|
329
|
+
},
|
|
330
|
+
"urllib3": {
|
|
331
|
+
"hashes": [
|
|
332
|
+
"sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4",
|
|
333
|
+
"sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb"
|
|
334
|
+
],
|
|
335
|
+
"markers": "python_version >= '3.4'",
|
|
336
|
+
"version": "==1.24.3"
|
|
337
|
+
},
|
|
338
|
+
"websocket-client": {
|
|
339
|
+
"hashes": [
|
|
340
|
+
"sha256:1151d5fb3a62dc129164292e1227655e4bbc5dd5340a5165dfae61128ec50aa9",
|
|
341
|
+
"sha256:1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a"
|
|
342
|
+
],
|
|
343
|
+
"version": "==0.56.0"
|
|
344
|
+
},
|
|
345
|
+
"werkzeug": {
|
|
346
|
+
"hashes": [
|
|
347
|
+
"sha256:865856ebb55c4dcd0630cdd8f3331a1847a819dda7e8c750d3db6f2aa6c0209c",
|
|
348
|
+
"sha256:a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6"
|
|
349
|
+
],
|
|
350
|
+
"version": "==0.15.4"
|
|
351
|
+
},
|
|
352
|
+
"wheel": {
|
|
353
|
+
"hashes": [
|
|
354
|
+
"sha256:5e79117472686ac0c4aef5bad5172ea73a1c2d1646b808c35926bd26bdfb0c08",
|
|
355
|
+
"sha256:62fcfa03d45b5b722539ccbc07b190e4bfff4bb9e3a4d470dd9f6a0981002565"
|
|
356
|
+
],
|
|
357
|
+
"version": "==0.33.4"
|
|
358
|
+
},
|
|
359
|
+
"whichcraft": {
|
|
360
|
+
"hashes": [
|
|
361
|
+
"sha256:7533870f751901a0ce43c93cc9850186e9eba7fe58c924dfb435968ba9c9fa4e",
|
|
362
|
+
"sha256:fecddd531f237ffc5db8b215409afb18fa30300699064cca4817521b4fc81815"
|
|
363
|
+
],
|
|
364
|
+
"version": "==0.5.2"
|
|
365
|
+
}
|
|
366
|
+
},
|
|
20
367
|
"develop": {}
|
|
21
368
|
}
|
data/README.md
CHANGED
|
@@ -14,61 +14,105 @@ end
|
|
|
14
14
|
|
|
15
15
|
## Getting Started
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
A simple Hello Rails application example using Lamby.
|
|
18
|
+
|
|
19
|
+
#### Installing AWS CLI & SAM
|
|
20
|
+
|
|
21
|
+
This is fairly easy on Macs using Homebrew. For other platforms or first time installers, please follow the [full guides](https://github.com/customink/lamby/issues/18) and configure your AWS CLI before proceeding.
|
|
22
|
+
|
|
23
|
+
```shell
|
|
24
|
+
$ brew install awscli
|
|
25
|
+
$ brew tap aws/tap
|
|
26
|
+
$ brew install aws-sam-cli
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### New Rails Application
|
|
30
|
+
|
|
31
|
+
Lamby works with existing Rails projects. In theory, any version. In our getting started example, let's create a new application. Here we skip any frameworks not needed, notable ActiveRecord.
|
|
32
|
+
|
|
33
|
+
```shell
|
|
34
|
+
$ rbenv local 2.5.5
|
|
35
|
+
$ gem install rails -v 6.0.0.rc1
|
|
36
|
+
$ rails new my_awesome_lambda \
|
|
37
|
+
--skip-action-mailer --skip-action-mailbox --skip-action-text \
|
|
38
|
+
--skip-active-record --skip-active-storage --skip-puma \
|
|
39
|
+
--skip-action-cable --skip-spring --skip-listen --skip-turbolinks \
|
|
40
|
+
--skip-system-test --skip-bootsnap --skip-webpack-install
|
|
41
|
+
$ cd my_awesome_lambda
|
|
42
|
+
```
|
|
18
43
|
|
|
19
|
-
Add
|
|
44
|
+
Add a root to the `routes.rb` file which maps to an `index` action in the application controller and return a simple Hello Rails H1 tag.
|
|
20
45
|
|
|
21
46
|
```ruby
|
|
22
|
-
|
|
47
|
+
Rails.application.routes.draw do
|
|
48
|
+
root to: 'application#index'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class ApplicationController < ActionController::Base
|
|
52
|
+
def index
|
|
53
|
+
render html: '<h1>Hello Rails</h1>'.html_safe
|
|
54
|
+
end
|
|
55
|
+
end
|
|
23
56
|
```
|
|
24
57
|
|
|
25
|
-
####
|
|
58
|
+
#### Add The Gem
|
|
26
59
|
|
|
27
|
-
|
|
60
|
+
Add the Lamby gem to your Rails project's `Gemfile`. Recommend only requiring Lamby in your `app.rb` so your local development or test environment logs still work.
|
|
28
61
|
|
|
29
62
|
```ruby
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
require_relative 'config/environment'
|
|
63
|
+
gem 'lamby', require: false
|
|
64
|
+
gem 'aws-sdk-ssm'
|
|
65
|
+
```
|
|
34
66
|
|
|
35
|
-
|
|
67
|
+
#### Install Needed Files
|
|
36
68
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
69
|
+
Lamby provides a simple Rake task to install the files needed for AWS Lambda to run your application.
|
|
70
|
+
|
|
71
|
+
```shell
|
|
72
|
+
$ ./bin/rake -r lamby lamby:install:api_gateway
|
|
40
73
|
```
|
|
41
74
|
|
|
42
|
-
|
|
75
|
+
This will install the following files.
|
|
43
76
|
|
|
44
|
-
|
|
77
|
+
* `app.rb` - Entry point for the Lambda handler.
|
|
78
|
+
* `template.yaml` - Your AWS Serverless Application Model ([SAM](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md)) template.
|
|
79
|
+
* `bin/build` - Configurable bash script to build your project with SAM.
|
|
80
|
+
* `bin/deploy` - Configurable bash script to deploy your app to with SAM.
|
|
45
81
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- Sets the handler to `app.handler`. File above.
|
|
54
|
-
- Defines events from API above for both root and greedy proxy.
|
|
55
|
-
* Simple `Outputs` that echos the resources you created.
|
|
82
|
+
#### Create CloudFormation S3 Bucket
|
|
83
|
+
|
|
84
|
+
The default name for the bucket in the `deploy` script would include your computer's username. You can change this in your script (WHICH WE RECOMMEND) or use the `CLOUDFORMATION_BUCKET` environment varable. Assuming you stick with the default:
|
|
85
|
+
|
|
86
|
+
```shell
|
|
87
|
+
aws s3 mb "s3://lamby.cloudformation.$(whoami)"
|
|
88
|
+
```
|
|
56
89
|
|
|
57
|
-
####
|
|
90
|
+
#### Configuration
|
|
58
91
|
|
|
59
|
-
|
|
92
|
+
We recommend using [Rails Credentials](https://guides.rubyonrails.org/security.html#environmental-security) by setting the `RAILS_MASTER_KEY` environment variable in your `app.rb` file. The value be read from AWS Systems Manager [Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) which Lamby has a client wrapper for. To set that value, use the following AWS CLI command.
|
|
60
93
|
|
|
61
94
|
```shell
|
|
62
|
-
|
|
63
|
-
|
|
95
|
+
aws ssm put-parameter \
|
|
96
|
+
--name "/config/my_awesome_lambda/env/RAILS_MASTER_KEY" \
|
|
97
|
+
--type "SecureString" \
|
|
98
|
+
--value $(cat config/master.key)
|
|
64
99
|
```
|
|
65
100
|
|
|
66
|
-
|
|
101
|
+
Update your `app.rb` file and add this line right after `require 'lamby'`.
|
|
67
102
|
|
|
68
|
-
|
|
103
|
+
```ruby
|
|
104
|
+
ENV['RAILS_MASTER_KEY'] =
|
|
105
|
+
Lamby::SsmParameterStore.get!('/config/my_awesome_lambda/env/RAILS_MASTER_KEY')
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
#### First Deploy!
|
|
109
|
+
|
|
110
|
+
Now your Rails app is ready to be deployed to AWS Lambda via CloudFormation & SAM.
|
|
111
|
+
|
|
112
|
+
```shell
|
|
113
|
+
$ ./bin/deploy
|
|
114
|
+
```
|
|
69
115
|
|
|
70
|
-
* [Installing AWS CLI and AWS SAM](https://github.com/customink/lamby/issues/18)
|
|
71
|
-
* [Bin Scripts - Setup, Build, Server, & Deploy](https://github.com/customink/lamby/issues/17)
|
|
72
116
|
|
|
73
117
|
## Additional Documentation
|
|
74
118
|
|
data/bin/bootstrap
CHANGED
|
@@ -1,31 +1,20 @@
|
|
|
1
|
-
#!/
|
|
1
|
+
#!/bin/bash
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
-
cd "$(dirname "$0")/.."
|
|
6
|
-
|
|
7
5
|
if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
|
|
8
6
|
brew bundle check || {
|
|
9
7
|
echo "==> Installing Homebrew dependencies..."
|
|
10
8
|
brew bundle --verbose
|
|
11
9
|
}
|
|
12
|
-
else
|
|
13
|
-
echo "Skipping because bootstrap is currently macOS depentant."
|
|
14
|
-
exit 1
|
|
15
10
|
fi
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
else
|
|
21
|
-
echo "Skipping because pyenv/pipenv were not found."
|
|
22
|
-
exit 1;
|
|
23
|
-
fi
|
|
12
|
+
rbenv install \
|
|
13
|
+
--skip-existing \
|
|
14
|
+
$(cat .ruby-version)
|
|
24
15
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
exit 1;
|
|
31
|
-
fi
|
|
16
|
+
CFLAGS="-I$(brew --prefix zlib)/include" \
|
|
17
|
+
LDFLAGS="-L$(brew --prefix zlib)/lib" \
|
|
18
|
+
pyenv install \
|
|
19
|
+
--skip-existing \
|
|
20
|
+
$(cat .python-version)
|
data/bin/setup
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
#!/
|
|
1
|
+
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
set -
|
|
4
|
-
IFS=$'\n\t'
|
|
5
|
-
set -vx
|
|
3
|
+
set -e
|
|
6
4
|
|
|
7
5
|
bundle install
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
pipenv install
|
|
11
|
-
else
|
|
12
|
-
echo "WARNING: pipenv not found in \$PATH. Skipping pipenv install"
|
|
13
|
-
fi
|
|
7
|
+
pipenv install
|
data/bin/update
ADDED
data/lamby.gemspec
CHANGED
data/lib/lamby/railtie.rb
CHANGED
|
@@ -15,6 +15,15 @@ module Lamby
|
|
|
15
15
|
new(path).get!.to_dotenv
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
def get!(path)
|
|
19
|
+
parts = path.from(1).split('/')
|
|
20
|
+
env = parts.pop
|
|
21
|
+
path = "/#{parts.join('/')}"
|
|
22
|
+
new(path).get!.params.detect do |p|
|
|
23
|
+
p.env == env
|
|
24
|
+
end.try(:value)
|
|
25
|
+
end
|
|
26
|
+
|
|
18
27
|
end
|
|
19
28
|
|
|
20
29
|
def initialize(path, options = {})
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
installers = {
|
|
2
|
+
'API Gateway': :api_gateway
|
|
3
|
+
}.freeze
|
|
4
|
+
|
|
5
|
+
namespace :lamby do
|
|
6
|
+
namespace :install do
|
|
7
|
+
|
|
8
|
+
installers.each do |name, task_name|
|
|
9
|
+
desc "Install Lamby files for #{name}"
|
|
10
|
+
task task_name do
|
|
11
|
+
exec "#{base_path} LOCATION=#{template(task_name)}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def template(task_name)
|
|
16
|
+
File.expand_path "../lamby/templates/#{task_name}.rb", __dir__
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def bin_path
|
|
20
|
+
ENV['BUNDLE_BIN'] || './bin'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def base_path
|
|
24
|
+
if Rails::VERSION::MAJOR >= 5
|
|
25
|
+
"#{RbConfig.ruby} #{bin_path}/rails app:template"
|
|
26
|
+
else
|
|
27
|
+
"#{RbConfig.ruby} #{bin_path}/rake rails:template"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
desc "Install Lamby files for #{installers.first.first}"
|
|
34
|
+
task install: 'install:api_gateway'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
$LAMBY_INSTALLER_NAME = 'api_gateway'
|
|
2
|
+
load 'lamby/templates/shared.rb'
|
|
3
|
+
|
|
4
|
+
say '==> Running Lamby API Gateway installer...'
|
|
5
|
+
|
|
6
|
+
say 'Copying files...'
|
|
7
|
+
copy_file tpl_file('app.rb'), app_file('app.rb')
|
|
8
|
+
copy_file tpl_file('template.yaml'), app_file('template.yaml')
|
|
9
|
+
gsub_file app_file('template.yaml'), /APPNAMEHERE/, appname
|
|
10
|
+
|
|
11
|
+
say 'Adding to .gitignore...'
|
|
12
|
+
FileUtils.touch app_file('.gitignore')
|
|
13
|
+
append_to_file app_file('.gitignore'), <<-GITIGNORE.strip_heredoc
|
|
14
|
+
# Lamby
|
|
15
|
+
'/.aws-sam'
|
|
16
|
+
GITIGNORE
|
|
17
|
+
|
|
18
|
+
say 'Creating ./bin files for build and deploy...'
|
|
19
|
+
copy_file shr_file('build'), app_file('bin/build')
|
|
20
|
+
chmod app_file('bin/build'), 0755
|
|
21
|
+
copy_file shr_file('deploy'), app_file('bin/deploy')
|
|
22
|
+
chmod app_file('bin/deploy'), 0755
|
|
23
|
+
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
|
24
|
+
|
|
25
|
+
say 'Welcome to AWS Lambda and Rails 🎉', :green
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require_relative 'config/boot'
|
|
2
|
+
require 'lamby'
|
|
3
|
+
require_relative 'config/application'
|
|
4
|
+
require_relative 'config/environment'
|
|
5
|
+
|
|
6
|
+
$app = Rack::Builder.new { run Rails.application }.to_app
|
|
7
|
+
|
|
8
|
+
def handler(event:, context:)
|
|
9
|
+
Lamby.handler $app, event, context
|
|
10
|
+
end
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
AWSTemplateFormatVersion: '2010-09-09'
|
|
2
2
|
Transform: AWS::Serverless-2016-10-31
|
|
3
|
-
Description:
|
|
3
|
+
Description: APPNAMEHERE Lambda
|
|
4
4
|
|
|
5
5
|
Parameters:
|
|
6
6
|
|
|
7
7
|
RailsEnv:
|
|
8
8
|
Type: String
|
|
9
|
-
Default:
|
|
9
|
+
Default: production
|
|
10
10
|
AllowedValues:
|
|
11
|
-
- development
|
|
12
|
-
- test
|
|
13
11
|
- staging
|
|
14
12
|
- production
|
|
15
13
|
|
|
@@ -82,5 +80,5 @@ Outputs:
|
|
|
82
80
|
Value: !Sub "https://${RailsApi}.execute-api.${AWS::Region}.amazonaws.com/${RailsEnv}/"
|
|
83
81
|
|
|
84
82
|
RailsFunctionArn:
|
|
85
|
-
Description: Lambda
|
|
83
|
+
Description: Lambda ARN
|
|
86
84
|
Value: !GetAtt RailsFunction.Arn
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
def inst_name
|
|
2
|
+
$LAMBY_INSTALLER_NAME
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
def app_file(path)
|
|
6
|
+
Rails.root.join(path)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def tpl_file(path)
|
|
10
|
+
"#{__dir__}/#{inst_name}/#{path}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def shr_file(path)
|
|
14
|
+
"#{__dir__}/shared/#{path}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def appname
|
|
18
|
+
Rails.application.class.parent.name
|
|
19
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Clean any previous bundle/builds.
|
|
5
|
+
rm -rf ./.aws-sam/build
|
|
6
|
+
|
|
7
|
+
# Ensure native extensions built for platform.
|
|
8
|
+
sam build --use-container
|
|
9
|
+
|
|
10
|
+
# [HOOK] Environments & Configuration
|
|
11
|
+
# https://github.com/customink/lamby/issues/28
|
|
12
|
+
|
|
13
|
+
# [HOOK] Asset Hosts & Precompiling
|
|
14
|
+
# https://github.com/customink/lamby/issues/29
|
|
15
|
+
|
|
16
|
+
# Clean un-needed artifacts.
|
|
17
|
+
pushd ./.aws-sam/build/RailsFunction/
|
|
18
|
+
rm -rf .aws-sam \
|
|
19
|
+
.git \
|
|
20
|
+
log \
|
|
21
|
+
test \
|
|
22
|
+
tmp
|
|
23
|
+
popd
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
export RAILS_ENV=${RAILS_ENV:="production"}
|
|
5
|
+
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
|
6
|
+
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.$(whoami)"}
|
|
7
|
+
|
|
8
|
+
./bin/build
|
|
9
|
+
|
|
10
|
+
sam package \
|
|
11
|
+
--region ${AWS_DEFAULT_REGION} \
|
|
12
|
+
--template-file ./.aws-sam/build/template.yaml \
|
|
13
|
+
--output-template-file ./.aws-sam/build/packaged.yaml \
|
|
14
|
+
--s3-bucket $CLOUDFORMATION_BUCKET \
|
|
15
|
+
--s3-prefix "APPNAMEHERE-${RAILS_ENV}"
|
|
16
|
+
|
|
17
|
+
sam deploy \
|
|
18
|
+
--template-file ./.aws-sam/build/packaged.yaml \
|
|
19
|
+
--stack-name "APPNAMEHERE-${RAILS_ENV}-${AWS_DEFAULT_REGION}" \
|
|
20
|
+
--capabilities "CAPABILITY_IAM" \
|
|
21
|
+
--parameter-overrides \
|
|
22
|
+
RailsEnv=${RAILS_ENV}
|
data/lib/lamby/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lamby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Collins
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-05-
|
|
11
|
+
date: 2019-05-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|
|
@@ -108,6 +108,34 @@ dependencies:
|
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: pry
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: sqlite3
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
111
139
|
description: Simple Rails & AWS Lambda Integration using Rack and various utilities.
|
|
112
140
|
email:
|
|
113
141
|
- kcollins@customink.com
|
|
@@ -133,7 +161,7 @@ files:
|
|
|
133
161
|
- bin/console
|
|
134
162
|
- bin/setup
|
|
135
163
|
- bin/test
|
|
136
|
-
-
|
|
164
|
+
- bin/update
|
|
137
165
|
- lamby.gemspec
|
|
138
166
|
- lib/lamby.rb
|
|
139
167
|
- lib/lamby/debug.rb
|
|
@@ -144,6 +172,13 @@ files:
|
|
|
144
172
|
- lib/lamby/sam_helpers.rb
|
|
145
173
|
- lib/lamby/ssm_parameter_store.rb
|
|
146
174
|
- lib/lamby/tasks.rake
|
|
175
|
+
- lib/lamby/templates.rake
|
|
176
|
+
- lib/lamby/templates/api_gateway.rb
|
|
177
|
+
- lib/lamby/templates/api_gateway/app.rb
|
|
178
|
+
- lib/lamby/templates/api_gateway/template.yaml
|
|
179
|
+
- lib/lamby/templates/shared.rb
|
|
180
|
+
- lib/lamby/templates/shared/build
|
|
181
|
+
- lib/lamby/templates/shared/deploy
|
|
147
182
|
- lib/lamby/version.rb
|
|
148
183
|
homepage: https://github.com/customink/lamby
|
|
149
184
|
licenses:
|
|
@@ -165,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
165
200
|
version: '0'
|
|
166
201
|
requirements: []
|
|
167
202
|
rubyforge_project:
|
|
168
|
-
rubygems_version: 2.7.6
|
|
203
|
+
rubygems_version: 2.7.6.2
|
|
169
204
|
signing_key:
|
|
170
205
|
specification_version: 4
|
|
171
206
|
summary: Simple Rails & AWS Lambda Integration using Rack
|