lamby 2.8.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -5
- data/bin/_test +2 -1
- data/lib/lamby.rb +1 -0
- data/lib/lamby/config.rb +4 -0
- data/lib/lamby/handler.rb +23 -8
- data/lib/lamby/rack.rb +16 -0
- data/lib/lamby/rack_alb.rb +9 -0
- data/lib/lamby/rack_http.rb +10 -0
- data/lib/lamby/rack_rest.rb +8 -0
- data/lib/lamby/runner.rb +58 -0
- data/lib/lamby/templates/alb.rb +2 -2
- data/lib/lamby/templates/alb/Dockerfile +12 -0
- data/lib/lamby/templates/alb/Dockerfile-build +11 -8
- data/lib/lamby/templates/alb/_build +9 -24
- data/lib/lamby/templates/alb/_deploy +10 -41
- data/lib/lamby/templates/alb/app.rb +1 -1
- data/lib/lamby/templates/alb/deploy +3 -8
- data/lib/lamby/templates/alb/docker-compose.yml +9 -7
- data/lib/lamby/templates/alb/template.yaml +1 -1
- data/lib/lamby/templates/http.rb +2 -2
- data/lib/lamby/templates/http/Dockerfile +12 -0
- data/lib/lamby/templates/http/Dockerfile-build +11 -8
- data/lib/lamby/templates/http/_build +9 -24
- data/lib/lamby/templates/http/_deploy +9 -23
- data/lib/lamby/templates/http/app.rb +1 -1
- data/lib/lamby/templates/http/deploy +3 -8
- data/lib/lamby/templates/http/docker-compose.yml +9 -7
- data/lib/lamby/templates/http/template.yaml +1 -1
- data/lib/lamby/templates/rest.rb +2 -2
- data/lib/lamby/templates/rest/Dockerfile +12 -0
- data/lib/lamby/templates/rest/Dockerfile-build +11 -8
- data/lib/lamby/templates/rest/_build +9 -24
- data/lib/lamby/templates/rest/_deploy +9 -23
- data/lib/lamby/templates/rest/app.rb +1 -1
- data/lib/lamby/templates/rest/deploy +3 -8
- data/lib/lamby/templates/rest/docker-compose.yml +9 -7
- data/lib/lamby/templates/rest/template.yaml +1 -1
- data/lib/lamby/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0617227ed78f3d72343201c0c77d89e174c674f22e6a8c42ed6a07b6b1cec866
|
4
|
+
data.tar.gz: 8569247f0afb429718263444638a67cef3e765c576217c106e1af9b72025f724
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a2ac758ac583d5547d2112afbb4a78b6fba6261b7f6eb3e9056378a66f71b827528a6986623818e36aa69c680b67478687d1557a8f851111dddc90155d3428b
|
7
|
+
data.tar.gz: 287359de5ea4b423f81156e46a5455a739d22b293bb20190c02744a76b0dbd5860b63dfd80177b3aec178be2c8924a81add185a449f43e82c804f79ed17c5702
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,17 @@
|
|
4
4
|
|
5
5
|
See this http://keepachangelog.com link for information on how we want this documented formatted.
|
6
6
|
|
7
|
+
## v3.0.0
|
8
|
+
|
9
|
+
#### Added
|
10
|
+
|
11
|
+
- Automatically handle `Lambdakiq.jobs?(event)`.
|
12
|
+
- New event for tasks like DB migrations. #80 #93
|
13
|
+
|
14
|
+
#### Changed
|
15
|
+
|
16
|
+
- Updated template files to latest lambda container standards.
|
17
|
+
|
7
18
|
## v2.8.0
|
8
19
|
|
9
20
|
#### Fixed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
# Lamby [![Actions Status](https://github.com/customink/lamby/workflows/CI/CD/badge.svg)](https://github.com/customink/lamby/actions)
|
3
2
|
|
4
3
|
<h2>Simple Rails & AWS Lambda Integration</h2>
|
@@ -11,7 +10,7 @@ The goal of this project is to provide minimal code to allow your Rails applicat
|
|
11
10
|
|
12
11
|
```ruby
|
13
12
|
def handler(event:, context:)
|
14
|
-
Lamby.handler $app, event, context
|
13
|
+
Lamby.handler $app, event, context
|
15
14
|
end
|
16
15
|
```
|
17
16
|
|
@@ -19,12 +18,10 @@ end
|
|
19
18
|
|
20
19
|
https://lamby.custominktech.com/docs/quick_start
|
21
20
|
|
22
|
-
|
23
21
|
## Full Documentation
|
24
22
|
|
25
23
|
https://lamby.custominktech.com/docs/installing_aws_sam
|
26
24
|
|
27
|
-
|
28
25
|
## Contributing
|
29
26
|
|
30
27
|
After checking out the repo, run:
|
@@ -37,7 +34,6 @@ $ ./bin/test
|
|
37
34
|
|
38
35
|
Bug reports and pull requests are welcome on GitHub at https://github.com/customink/lamby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
39
36
|
|
40
|
-
|
41
37
|
## Code of Conduct
|
42
38
|
|
43
39
|
Everyone interacting in the Lamby project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/customink/lamby/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/_test
CHANGED
data/lib/lamby.rb
CHANGED
data/lib/lamby/config.rb
CHANGED
data/lib/lamby/handler.rb
CHANGED
@@ -68,16 +68,19 @@ module Lamby
|
|
68
68
|
private
|
69
69
|
|
70
70
|
def rack
|
71
|
-
@rack
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
else
|
77
|
-
Lamby::RackHttp.new @event, @context
|
71
|
+
return @rack if defined?(@rack)
|
72
|
+
@rack = begin
|
73
|
+
type = rack_option
|
74
|
+
klass = Lamby::Rack.lookup type, @event
|
75
|
+
(klass && klass.handle?(@event)) ? klass.new(@event, @context) : false
|
78
76
|
end
|
79
77
|
end
|
80
78
|
|
79
|
+
def rack_option
|
80
|
+
return if ENV['LAMBY_TEST_DYNAMIC_HANDLER']
|
81
|
+
@options[:rack]
|
82
|
+
end
|
83
|
+
|
81
84
|
def rack_response
|
82
85
|
rack? ? rack.response(self) : {}
|
83
86
|
end
|
@@ -87,6 +90,10 @@ module Lamby
|
|
87
90
|
Debug.call @event, @context, rack.env
|
88
91
|
elsif rack?
|
89
92
|
@app.call rack.env
|
93
|
+
elsif runner?
|
94
|
+
Runner.call(@event)
|
95
|
+
elsif lambdakiq?
|
96
|
+
Lambdakiq.handler(@event)
|
90
97
|
elsif event_bridge?
|
91
98
|
Lamby.config.event_bridge_handler.call @event, @context
|
92
99
|
[200, {}, StringIO.new('')]
|
@@ -101,12 +108,20 @@ module Lamby
|
|
101
108
|
end
|
102
109
|
|
103
110
|
def rack?
|
104
|
-
|
111
|
+
rack
|
105
112
|
end
|
106
113
|
|
107
114
|
def event_bridge?
|
108
115
|
Lamby.config.event_bridge_handler &&
|
109
116
|
@event.key?('source') && @event.key?('detail') && @event.key?('detail-type')
|
110
117
|
end
|
118
|
+
|
119
|
+
def lambdakiq?
|
120
|
+
defined?(::Lambdakiq) && ::Lambdakiq.job?(@event)
|
121
|
+
end
|
122
|
+
|
123
|
+
def runner?
|
124
|
+
Runner.handle?(@event)
|
125
|
+
end
|
111
126
|
end
|
112
127
|
end
|
data/lib/lamby/rack.rb
CHANGED
@@ -7,6 +7,22 @@ module Lamby
|
|
7
7
|
LAMBDA_CONTEXT = 'lambda.context'.freeze
|
8
8
|
HTTP_X_REQUESTID = 'HTTP_X_REQUEST_ID'.freeze
|
9
9
|
HTTP_COOKIE = 'HTTP_COOKIE'.freeze
|
10
|
+
|
11
|
+
class << self
|
12
|
+
|
13
|
+
def lookup(type, event)
|
14
|
+
types[type] || types.values.detect { |t| t.handle?(event) }
|
15
|
+
end
|
16
|
+
|
17
|
+
# Order is important. REST is hardest to isolated with handle? method.
|
18
|
+
def types
|
19
|
+
{ alb: RackAlb,
|
20
|
+
http: RackHttp,
|
21
|
+
rest: RackRest,
|
22
|
+
api: RackRest }
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
10
26
|
|
11
27
|
attr_reader :event, :context
|
12
28
|
|
data/lib/lamby/rack_alb.rb
CHANGED
data/lib/lamby/rack_http.rb
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
module Lamby
|
2
2
|
class RackHttp < Lamby::Rack
|
3
3
|
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def handle?(event)
|
7
|
+
event.key?('version') &&
|
8
|
+
( event.dig('requestContext', 'http') ||
|
9
|
+
event.dig('requestContext', 'httpMethod') )
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
4
14
|
def response(handler)
|
5
15
|
if handler.base64_encodeable?
|
6
16
|
{ isBase64Encoded: true, body: handler.body64 }
|
data/lib/lamby/rack_rest.rb
CHANGED
data/lib/lamby/runner.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
module Lamby
|
4
|
+
class Runner
|
5
|
+
class Error < StandardError ; end
|
6
|
+
class UnknownCommandPattern < Error ; end
|
7
|
+
|
8
|
+
PATTERNS = [
|
9
|
+
%r{\A\./bin/(rails|rake) db:migrate.*}
|
10
|
+
]
|
11
|
+
|
12
|
+
class << self
|
13
|
+
|
14
|
+
def handle?(event)
|
15
|
+
event.dig 'lamby', 'runner'
|
16
|
+
end
|
17
|
+
|
18
|
+
def call(event)
|
19
|
+
new(event).call
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(event)
|
25
|
+
@event = event
|
26
|
+
end
|
27
|
+
|
28
|
+
def call
|
29
|
+
validate!
|
30
|
+
status = Open3.popen3(command, chdir: chdir) do |_stdin, stdout, stderr, thread|
|
31
|
+
puts stdout.read
|
32
|
+
puts stderr.read
|
33
|
+
thread.value.exitstatus
|
34
|
+
end
|
35
|
+
[status, {}, StringIO.new('')]
|
36
|
+
end
|
37
|
+
|
38
|
+
def command
|
39
|
+
@event.dig 'lamby', 'runner'
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def chdir
|
45
|
+
defined?(::Rails) ? ::Rails.root : Dir.pwd
|
46
|
+
end
|
47
|
+
|
48
|
+
def validate!
|
49
|
+
return if pattern?
|
50
|
+
raise UnknownCommandPattern.new(command)
|
51
|
+
end
|
52
|
+
|
53
|
+
def pattern?
|
54
|
+
PATTERNS.any? { |p| p === command }
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
data/lib/lamby/templates/alb.rb
CHANGED
@@ -10,13 +10,13 @@ gsub_file app_file('template.yaml'), /APPNAMEHERE/, appname
|
|
10
10
|
copy_file tpl_file('Dockerfile'), app_file('Dockerfile')
|
11
11
|
copy_file tpl_file('Dockerfile-build'), app_file('Dockerfile-build')
|
12
12
|
copy_file tpl_file('docker-compose.yml'), app_file('docker-compose.yml')
|
13
|
+
gsub_file app_file('docker-compose.yml'), /APPNAMEHERE/, appname.downcase
|
13
14
|
|
14
15
|
say 'Adding to .gitignore...'
|
15
16
|
FileUtils.touch app_file('.gitignore')
|
16
17
|
append_to_file app_file('.gitignore'), <<~GITIGNORE
|
17
18
|
# Lamby
|
18
19
|
/.aws-sam
|
19
|
-
/.lamby
|
20
20
|
GITIGNORE
|
21
21
|
|
22
22
|
say 'Creating ./bin files for build and deploy...'
|
@@ -24,10 +24,10 @@ copy_file tpl_file('_build'), app_file('bin/_build')
|
|
24
24
|
gsub_file app_file('bin/_build'), /APPNAMEHERE/, appname.downcase
|
25
25
|
chmod app_file('bin/_build'), 0755
|
26
26
|
copy_file tpl_file('deploy'), app_file('bin/deploy')
|
27
|
+
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
27
28
|
chmod app_file('bin/deploy'), 0755
|
28
29
|
copy_file tpl_file('_deploy'), app_file('bin/_deploy')
|
29
30
|
gsub_file app_file('bin/_deploy'), /APPNAMEHERE/, appname.downcase
|
30
31
|
chmod app_file('bin/_deploy'), 0755
|
31
|
-
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
32
32
|
|
33
33
|
say 'Welcome to AWS Lambda and Rails 🎉', :green
|
@@ -1,3 +1,15 @@
|
|
1
1
|
FROM public.ecr.aws/lambda/ruby:2.7
|
2
|
+
ARG RAILS_ENV
|
3
|
+
ENV RAILS_ENV=$RAILS_ENV
|
4
|
+
|
2
5
|
COPY . .
|
6
|
+
|
7
|
+
# == Cleanup Unused Files & Directories ==
|
8
|
+
RUN rm -rf \
|
9
|
+
log \
|
10
|
+
node_modules \
|
11
|
+
test \
|
12
|
+
tmp \
|
13
|
+
vendor/bundle/ruby/2.7.0/cache
|
14
|
+
|
3
15
|
CMD ["app.handler"]
|
@@ -1,15 +1,18 @@
|
|
1
1
|
FROM amazon/aws-sam-cli-build-image-ruby2.7
|
2
2
|
|
3
3
|
# Ensure minimum required SAM version.
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
ENV SAM_CLI_VERSION=1.23.0
|
5
|
+
RUN curl -L "https://github.com/aws/aws-sam-cli/releases/download/v${SAM_CLI_VERSION}/aws-sam-cli-linux-x86_64.zip" \
|
6
|
+
-o "aws-sam-cli-linux-x86_64.zip" && \
|
7
|
+
unzip -q aws-sam-cli-linux-x86_64.zip -d sam-installation && \
|
8
|
+
./sam-installation/install && \
|
9
|
+
rm -rf ./sam-installation ./aws-sam-cli-linux-x86_64.zip
|
7
10
|
|
8
11
|
# Node for JavaScript.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash - && \
|
13
|
+
yum install -y nodejs && \
|
14
|
+
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo && \
|
15
|
+
rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg && \
|
16
|
+
yum install -y yarn
|
14
17
|
|
15
18
|
WORKDIR /var/task
|
@@ -1,20 +1,15 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
cp -r "$SAM_TEMP" "./.lamby/$RESOURCE"
|
11
|
-
pushd "./.lamby/$RESOURCE"
|
12
|
-
|
13
|
-
echo '== Cleaning Dev Dependencies =='
|
14
|
-
rm -rf ./.bundle \
|
15
|
-
./vendor/bundle
|
4
|
+
if [ "$CI" != "true" ]; then
|
5
|
+
echo "== Cleaning dev dependencies for local deploy. Run ./bin/setup again afterward! =="
|
6
|
+
rm -rf ./.bundle \
|
7
|
+
./vendor/bundle \
|
8
|
+
./node_modules
|
9
|
+
fi
|
16
10
|
|
17
11
|
echo '== Bundle For Deployment =='
|
12
|
+
bundle lock --add-platform x86_64-linux
|
18
13
|
bundle config --local deployment true
|
19
14
|
bundle config --local without 'development test'
|
20
15
|
bundle config --local path './vendor/bundle'
|
@@ -27,14 +22,4 @@ echo "== Environments & Configuration =="
|
|
27
22
|
# LAMBY_SSM_PARAMS_PATH="/APPNAMEHERE/${RAILS_ENV}/env"
|
28
23
|
|
29
24
|
echo "== Asset Hosts & Precompiling =="
|
30
|
-
|
31
|
-
# RAILS_GROUPS=assets \
|
32
|
-
# ./bin/rails assets:precompile
|
33
|
-
|
34
|
-
echo "== Cleanup Unused Files & Directories =="
|
35
|
-
rm -rf \
|
36
|
-
log \
|
37
|
-
node_modules \
|
38
|
-
test \
|
39
|
-
tmp \
|
40
|
-
vendor/bundle/ruby/2.7.0/cache
|
25
|
+
NODE_ENV='production' ./bin/rails assets:precompile
|
@@ -1,62 +1,31 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
5
|
-
export RAILS_ENV=${RAILS_ENV:="production"}
|
6
|
-
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
7
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
8
|
-
|
9
4
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
echo '== Creating ECR repository =='
|
14
|
-
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
15
|
-
aws ecr create-repository \
|
16
|
-
--repository-name "$DEPLOYMENT_NAME" \
|
17
|
-
--image-tag-mutability MUTABLE \
|
18
|
-
--image-scanning-configuration scanOnPush=true \
|
19
|
-
--region "$AWS_DEFAULT_REGION" || true
|
5
|
+
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
6
|
+
IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/APPNAMEHERE"
|
20
7
|
|
21
|
-
|
8
|
+
echo "== Lamby build =="
|
22
9
|
./bin/_build
|
23
10
|
|
24
|
-
|
25
|
-
aws ec2 describe-vpcs \
|
26
|
-
--output text \
|
27
|
-
--filters 'Name=state,Values=available' \
|
28
|
-
--query 'Vpcs[0].VpcId'
|
29
|
-
)}
|
30
|
-
|
31
|
-
export SUBNETS=${SUBNETS:=$(
|
32
|
-
aws ec2 describe-subnets \
|
33
|
-
--output text \
|
34
|
-
--filters 'Name=state,Values=available' "Name=vpc-id,Values=$VPCID" \
|
35
|
-
--query 'Subnets[*].SubnetId' | \
|
36
|
-
tr -s '[:blank:]' ','
|
37
|
-
)}
|
38
|
-
|
11
|
+
echo "== SAM build =="
|
39
12
|
sam build \
|
40
13
|
--parameter-overrides \
|
41
|
-
|
14
|
+
RailsEnv="${RAILS_ENV}"
|
42
15
|
|
43
|
-
echo "== SAM package
|
16
|
+
echo "== SAM package =="
|
44
17
|
sam package \
|
45
18
|
--region "$AWS_DEFAULT_REGION" \
|
46
19
|
--template-file ./.aws-sam/build/template.yaml \
|
47
20
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
48
21
|
--image-repository "$IMAGE_REPOSITORY" \
|
49
|
-
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
50
|
-
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
51
22
|
|
52
|
-
echo "== SAM deploy
|
23
|
+
echo "== SAM deploy =="
|
53
24
|
sam deploy \
|
54
25
|
--region "$AWS_DEFAULT_REGION" \
|
55
26
|
--template-file ./.aws-sam/build/packaged.yaml \
|
56
|
-
--stack-name "
|
27
|
+
--stack-name "APPNAMEHERE-${RAILS_ENV}" \
|
57
28
|
--image-repository "$IMAGE_REPOSITORY" \
|
58
29
|
--capabilities "CAPABILITY_IAM" \
|
59
30
|
--parameter-overrides \
|
60
|
-
RailsEnv="${RAILS_ENV}"
|
61
|
-
VpcId=${VPCID} \
|
62
|
-
Subnets=${SUBNETS}
|
31
|
+
RailsEnv="${RAILS_ENV}"
|
@@ -1,13 +1,8 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
4
|
export RAILS_ENV=${RAILS_ENV:=production}
|
5
5
|
|
6
|
-
if [[ "$OSTYPE" == *"darwin"* ]]; then
|
7
|
-
export SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
|
8
|
-
fi
|
9
|
-
|
10
6
|
docker-compose run \
|
11
|
-
|
12
|
-
|
13
|
-
./bin/_deploy
|
7
|
+
APPNAMEHERE \
|
8
|
+
./bin/_deploy
|
@@ -1,17 +1,19 @@
|
|
1
1
|
version: '3.7'
|
2
2
|
services:
|
3
|
-
|
3
|
+
APPNAMEHERE:
|
4
4
|
build:
|
5
|
-
context: .
|
5
|
+
context: '.'
|
6
6
|
dockerfile: Dockerfile-build
|
7
|
+
entrypoint: ./bin/entrypoint
|
7
8
|
environment:
|
8
9
|
- RAILS_ENV=${RAILS_ENV-development}
|
10
|
+
- SAM_CLI_TELEMETRY=0
|
9
11
|
- AWS_PROFILE=${AWS_PROFILE-default}
|
12
|
+
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
13
|
+
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
10
14
|
- AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION-us-east-1}
|
11
|
-
-
|
15
|
+
- CI=${CI}
|
12
16
|
volumes:
|
13
|
-
- ${
|
14
|
-
-
|
15
|
-
- ~/.ssh/known_hosts:/root/.ssh/known_hosts
|
16
|
-
- .:/var/task:delegated
|
17
|
+
- ${PWD}:/var/task
|
18
|
+
- ${HOME}/.aws:/root/.aws
|
17
19
|
- /var/run/docker.sock:/var/run/docker.sock
|
data/lib/lamby/templates/http.rb
CHANGED
@@ -10,13 +10,13 @@ gsub_file app_file('template.yaml'), /APPNAMEHERE/, appname
|
|
10
10
|
copy_file tpl_file('Dockerfile'), app_file('Dockerfile')
|
11
11
|
copy_file tpl_file('Dockerfile-build'), app_file('Dockerfile-build')
|
12
12
|
copy_file tpl_file('docker-compose.yml'), app_file('docker-compose.yml')
|
13
|
+
gsub_file app_file('docker-compose.yml'), /APPNAMEHERE/, appname.downcase
|
13
14
|
|
14
15
|
say 'Adding to .gitignore...'
|
15
16
|
FileUtils.touch app_file('.gitignore')
|
16
17
|
append_to_file app_file('.gitignore'), <<~GITIGNORE
|
17
18
|
# Lamby
|
18
19
|
/.aws-sam
|
19
|
-
/.lamby
|
20
20
|
GITIGNORE
|
21
21
|
|
22
22
|
say 'Creating ./bin files for build and deploy...'
|
@@ -24,10 +24,10 @@ copy_file tpl_file('_build'), app_file('bin/_build')
|
|
24
24
|
gsub_file app_file('bin/_build'), /APPNAMEHERE/, appname.downcase
|
25
25
|
chmod app_file('bin/_build'), 0755
|
26
26
|
copy_file tpl_file('deploy'), app_file('bin/deploy')
|
27
|
+
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
27
28
|
chmod app_file('bin/deploy'), 0755
|
28
29
|
copy_file tpl_file('_deploy'), app_file('bin/_deploy')
|
29
30
|
gsub_file app_file('bin/_deploy'), /APPNAMEHERE/, appname.downcase
|
30
31
|
chmod app_file('bin/_deploy'), 0755
|
31
|
-
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
32
32
|
|
33
33
|
say 'Welcome to AWS Lambda and Rails 🎉', :green
|
@@ -1,3 +1,15 @@
|
|
1
1
|
FROM public.ecr.aws/lambda/ruby:2.7
|
2
|
+
ARG RAILS_ENV
|
3
|
+
ENV RAILS_ENV=$RAILS_ENV
|
4
|
+
|
2
5
|
COPY . .
|
6
|
+
|
7
|
+
# == Cleanup Unused Files & Directories ==
|
8
|
+
RUN rm -rf \
|
9
|
+
log \
|
10
|
+
node_modules \
|
11
|
+
test \
|
12
|
+
tmp \
|
13
|
+
vendor/bundle/ruby/2.7.0/cache
|
14
|
+
|
3
15
|
CMD ["app.handler"]
|
@@ -1,15 +1,18 @@
|
|
1
1
|
FROM amazon/aws-sam-cli-build-image-ruby2.7
|
2
2
|
|
3
3
|
# Ensure minimum required SAM version.
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
ENV SAM_CLI_VERSION=1.23.0
|
5
|
+
RUN curl -L "https://github.com/aws/aws-sam-cli/releases/download/v${SAM_CLI_VERSION}/aws-sam-cli-linux-x86_64.zip" \
|
6
|
+
-o "aws-sam-cli-linux-x86_64.zip" && \
|
7
|
+
unzip -q aws-sam-cli-linux-x86_64.zip -d sam-installation && \
|
8
|
+
./sam-installation/install && \
|
9
|
+
rm -rf ./sam-installation ./aws-sam-cli-linux-x86_64.zip
|
7
10
|
|
8
11
|
# Node for JavaScript.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash - && \
|
13
|
+
yum install -y nodejs && \
|
14
|
+
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo && \
|
15
|
+
rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg && \
|
16
|
+
yum install -y yarn
|
14
17
|
|
15
18
|
WORKDIR /var/task
|
@@ -1,20 +1,15 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
cp -r "$SAM_TEMP" "./.lamby/$RESOURCE"
|
11
|
-
pushd "./.lamby/$RESOURCE"
|
12
|
-
|
13
|
-
echo '== Cleaning Dev Dependencies =='
|
14
|
-
rm -rf ./.bundle \
|
15
|
-
./vendor/bundle
|
4
|
+
if [ "$CI" != "true" ]; then
|
5
|
+
echo "== Cleaning dev dependencies for local deploy. Run ./bin/setup again afterward! =="
|
6
|
+
rm -rf ./.bundle \
|
7
|
+
./vendor/bundle \
|
8
|
+
./node_modules
|
9
|
+
fi
|
16
10
|
|
17
11
|
echo '== Bundle For Deployment =='
|
12
|
+
bundle lock --add-platform x86_64-linux
|
18
13
|
bundle config --local deployment true
|
19
14
|
bundle config --local without 'development test'
|
20
15
|
bundle config --local path './vendor/bundle'
|
@@ -27,14 +22,4 @@ echo "== Environments & Configuration =="
|
|
27
22
|
# LAMBY_SSM_PARAMS_PATH="/APPNAMEHERE/${RAILS_ENV}/env"
|
28
23
|
|
29
24
|
echo "== Asset Hosts & Precompiling =="
|
30
|
-
|
31
|
-
# RAILS_GROUPS=assets \
|
32
|
-
# ./bin/rails assets:precompile
|
33
|
-
|
34
|
-
echo "== Cleanup Unused Files & Directories =="
|
35
|
-
rm -rf \
|
36
|
-
log \
|
37
|
-
node_modules \
|
38
|
-
test \
|
39
|
-
tmp \
|
40
|
-
vendor/bundle/ruby/2.7.0/cache
|
25
|
+
NODE_ENV='production' ./bin/rails assets:precompile
|
@@ -1,44 +1,30 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
5
|
-
export RAILS_ENV=${RAILS_ENV:="production"}
|
6
|
-
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
7
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
8
|
-
|
9
4
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
echo '== Creating ECR repository =='
|
14
|
-
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
15
|
-
aws ecr create-repository \
|
16
|
-
--repository-name "$DEPLOYMENT_NAME" \
|
17
|
-
--image-tag-mutability MUTABLE \
|
18
|
-
--image-scanning-configuration scanOnPush=true \
|
19
|
-
--region "$AWS_DEFAULT_REGION" || true
|
5
|
+
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
6
|
+
IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/APPNAMEHERE"
|
20
7
|
|
21
|
-
|
8
|
+
echo "== Lamby build =="
|
22
9
|
./bin/_build
|
23
10
|
|
11
|
+
echo "== SAM build =="
|
24
12
|
sam build \
|
25
13
|
--parameter-overrides \
|
26
|
-
|
14
|
+
RailsEnv="${RAILS_ENV}"
|
27
15
|
|
28
|
-
echo "== SAM package
|
16
|
+
echo "== SAM package =="
|
29
17
|
sam package \
|
30
18
|
--region "$AWS_DEFAULT_REGION" \
|
31
19
|
--template-file ./.aws-sam/build/template.yaml \
|
32
20
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
33
21
|
--image-repository "$IMAGE_REPOSITORY" \
|
34
|
-
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
35
|
-
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
36
22
|
|
37
|
-
echo "== SAM deploy
|
23
|
+
echo "== SAM deploy =="
|
38
24
|
sam deploy \
|
39
25
|
--region "$AWS_DEFAULT_REGION" \
|
40
26
|
--template-file ./.aws-sam/build/packaged.yaml \
|
41
|
-
--stack-name "
|
27
|
+
--stack-name "APPNAMEHERE-${RAILS_ENV}" \
|
42
28
|
--image-repository "$IMAGE_REPOSITORY" \
|
43
29
|
--capabilities "CAPABILITY_IAM" \
|
44
30
|
--parameter-overrides \
|
@@ -1,13 +1,8 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
4
|
export RAILS_ENV=${RAILS_ENV:=production}
|
5
5
|
|
6
|
-
if [[ "$OSTYPE" == *"darwin"* ]]; then
|
7
|
-
export SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
|
8
|
-
fi
|
9
|
-
|
10
6
|
docker-compose run \
|
11
|
-
|
12
|
-
|
13
|
-
./bin/_deploy
|
7
|
+
APPNAMEHERE \
|
8
|
+
./bin/_deploy
|
@@ -1,17 +1,19 @@
|
|
1
1
|
version: '3.7'
|
2
2
|
services:
|
3
|
-
|
3
|
+
APPNAMEHERE:
|
4
4
|
build:
|
5
|
-
context: .
|
5
|
+
context: '.'
|
6
6
|
dockerfile: Dockerfile-build
|
7
|
+
entrypoint: ./bin/entrypoint
|
7
8
|
environment:
|
8
9
|
- RAILS_ENV=${RAILS_ENV-development}
|
10
|
+
- SAM_CLI_TELEMETRY=0
|
9
11
|
- AWS_PROFILE=${AWS_PROFILE-default}
|
12
|
+
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
13
|
+
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
10
14
|
- AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION-us-east-1}
|
11
|
-
-
|
15
|
+
- CI=${CI}
|
12
16
|
volumes:
|
13
|
-
- ${
|
14
|
-
-
|
15
|
-
- ~/.ssh/known_hosts:/root/.ssh/known_hosts
|
16
|
-
- .:/var/task:delegated
|
17
|
+
- ${PWD}:/var/task
|
18
|
+
- ${HOME}/.aws:/root/.aws
|
17
19
|
- /var/run/docker.sock:/var/run/docker.sock
|
data/lib/lamby/templates/rest.rb
CHANGED
@@ -10,13 +10,13 @@ gsub_file app_file('template.yaml'), /APPNAMEHERE/, appname
|
|
10
10
|
copy_file tpl_file('Dockerfile'), app_file('Dockerfile')
|
11
11
|
copy_file tpl_file('Dockerfile-build'), app_file('Dockerfile-build')
|
12
12
|
copy_file tpl_file('docker-compose.yml'), app_file('docker-compose.yml')
|
13
|
+
gsub_file app_file('docker-compose.yml'), /APPNAMEHERE/, appname.downcase
|
13
14
|
|
14
15
|
say 'Adding to .gitignore...'
|
15
16
|
FileUtils.touch app_file('.gitignore')
|
16
17
|
append_to_file app_file('.gitignore'), <<~GITIGNORE
|
17
18
|
# Lamby
|
18
19
|
/.aws-sam
|
19
|
-
/.lamby
|
20
20
|
GITIGNORE
|
21
21
|
|
22
22
|
say 'Creating ./bin files for build and deploy...'
|
@@ -24,10 +24,10 @@ copy_file tpl_file('_build'), app_file('bin/_build')
|
|
24
24
|
gsub_file app_file('bin/_build'), /APPNAMEHERE/, appname.downcase
|
25
25
|
chmod app_file('bin/_build'), 0755
|
26
26
|
copy_file tpl_file('deploy'), app_file('bin/deploy')
|
27
|
+
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
27
28
|
chmod app_file('bin/deploy'), 0755
|
28
29
|
copy_file tpl_file('_deploy'), app_file('bin/_deploy')
|
29
30
|
gsub_file app_file('bin/_deploy'), /APPNAMEHERE/, appname.downcase
|
30
31
|
chmod app_file('bin/_deploy'), 0755
|
31
|
-
gsub_file app_file('bin/deploy'), /APPNAMEHERE/, appname.downcase
|
32
32
|
|
33
33
|
say 'Welcome to AWS Lambda and Rails 🎉', :green
|
@@ -1,3 +1,15 @@
|
|
1
1
|
FROM public.ecr.aws/lambda/ruby:2.7
|
2
|
+
ARG RAILS_ENV
|
3
|
+
ENV RAILS_ENV=$RAILS_ENV
|
4
|
+
|
2
5
|
COPY . .
|
6
|
+
|
7
|
+
# == Cleanup Unused Files & Directories ==
|
8
|
+
RUN rm -rf \
|
9
|
+
log \
|
10
|
+
node_modules \
|
11
|
+
test \
|
12
|
+
tmp \
|
13
|
+
vendor/bundle/ruby/2.7.0/cache
|
14
|
+
|
3
15
|
CMD ["app.handler"]
|
@@ -1,15 +1,18 @@
|
|
1
1
|
FROM amazon/aws-sam-cli-build-image-ruby2.7
|
2
2
|
|
3
3
|
# Ensure minimum required SAM version.
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
ENV SAM_CLI_VERSION=1.23.0
|
5
|
+
RUN curl -L "https://github.com/aws/aws-sam-cli/releases/download/v${SAM_CLI_VERSION}/aws-sam-cli-linux-x86_64.zip" \
|
6
|
+
-o "aws-sam-cli-linux-x86_64.zip" && \
|
7
|
+
unzip -q aws-sam-cli-linux-x86_64.zip -d sam-installation && \
|
8
|
+
./sam-installation/install && \
|
9
|
+
rm -rf ./sam-installation ./aws-sam-cli-linux-x86_64.zip
|
7
10
|
|
8
11
|
# Node for JavaScript.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash - && \
|
13
|
+
yum install -y nodejs && \
|
14
|
+
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo && \
|
15
|
+
rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg && \
|
16
|
+
yum install -y yarn
|
14
17
|
|
15
18
|
WORKDIR /var/task
|
@@ -1,20 +1,15 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
cp -r "$SAM_TEMP" "./.lamby/$RESOURCE"
|
11
|
-
pushd "./.lamby/$RESOURCE"
|
12
|
-
|
13
|
-
echo '== Cleaning Dev Dependencies =='
|
14
|
-
rm -rf ./.bundle \
|
15
|
-
./vendor/bundle
|
4
|
+
if [ "$CI" != "true" ]; then
|
5
|
+
echo "== Cleaning dev dependencies for local deploy. Run ./bin/setup again afterward! =="
|
6
|
+
rm -rf ./.bundle \
|
7
|
+
./vendor/bundle \
|
8
|
+
./node_modules
|
9
|
+
fi
|
16
10
|
|
17
11
|
echo '== Bundle For Deployment =='
|
12
|
+
bundle lock --add-platform x86_64-linux
|
18
13
|
bundle config --local deployment true
|
19
14
|
bundle config --local without 'development test'
|
20
15
|
bundle config --local path './vendor/bundle'
|
@@ -27,14 +22,4 @@ echo "== Environments & Configuration =="
|
|
27
22
|
# LAMBY_SSM_PARAMS_PATH="/APPNAMEHERE/${RAILS_ENV}/env"
|
28
23
|
|
29
24
|
echo "== Asset Hosts & Precompiling =="
|
30
|
-
|
31
|
-
# RAILS_GROUPS=assets \
|
32
|
-
# ./bin/rails assets:precompile
|
33
|
-
|
34
|
-
echo "== Cleanup Unused Files & Directories =="
|
35
|
-
rm -rf \
|
36
|
-
log \
|
37
|
-
node_modules \
|
38
|
-
test \
|
39
|
-
tmp \
|
40
|
-
vendor/bundle/ruby/2.7.0/cache
|
25
|
+
NODE_ENV='production' ./bin/rails assets:precompile
|
@@ -1,44 +1,30 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
|
-
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
5
|
-
export RAILS_ENV=${RAILS_ENV:="production"}
|
6
|
-
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
7
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
8
|
-
|
9
4
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
echo '== Creating ECR repository =='
|
14
|
-
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
15
|
-
aws ecr create-repository \
|
16
|
-
--repository-name "$DEPLOYMENT_NAME" \
|
17
|
-
--image-tag-mutability MUTABLE \
|
18
|
-
--image-scanning-configuration scanOnPush=true \
|
19
|
-
--region "$AWS_DEFAULT_REGION" || true
|
5
|
+
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
6
|
+
IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/APPNAMEHERE"
|
20
7
|
|
21
|
-
|
8
|
+
echo "== Lamby build =="
|
22
9
|
./bin/_build
|
23
10
|
|
11
|
+
echo "== SAM build =="
|
24
12
|
sam build \
|
25
13
|
--parameter-overrides \
|
26
|
-
|
14
|
+
RailsEnv="${RAILS_ENV}"
|
27
15
|
|
28
|
-
echo "== SAM package
|
16
|
+
echo "== SAM package =="
|
29
17
|
sam package \
|
30
18
|
--region "$AWS_DEFAULT_REGION" \
|
31
19
|
--template-file ./.aws-sam/build/template.yaml \
|
32
20
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
33
21
|
--image-repository "$IMAGE_REPOSITORY" \
|
34
|
-
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
35
|
-
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
36
22
|
|
37
|
-
echo "== SAM deploy
|
23
|
+
echo "== SAM deploy =="
|
38
24
|
sam deploy \
|
39
25
|
--region "$AWS_DEFAULT_REGION" \
|
40
26
|
--template-file ./.aws-sam/build/packaged.yaml \
|
41
|
-
--stack-name "
|
27
|
+
--stack-name "APPNAMEHERE-${RAILS_ENV}" \
|
42
28
|
--image-repository "$IMAGE_REPOSITORY" \
|
43
29
|
--capabilities "CAPABILITY_IAM" \
|
44
30
|
--parameter-overrides \
|
@@ -1,13 +1,8 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
set -e
|
3
3
|
|
4
4
|
export RAILS_ENV=${RAILS_ENV:=production}
|
5
5
|
|
6
|
-
if [[ "$OSTYPE" == *"darwin"* ]]; then
|
7
|
-
export SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
|
8
|
-
fi
|
9
|
-
|
10
6
|
docker-compose run \
|
11
|
-
|
12
|
-
|
13
|
-
./bin/_deploy
|
7
|
+
APPNAMEHERE \
|
8
|
+
./bin/_deploy
|
@@ -1,17 +1,19 @@
|
|
1
1
|
version: '3.7'
|
2
2
|
services:
|
3
|
-
|
3
|
+
APPNAMEHERE:
|
4
4
|
build:
|
5
|
-
context: .
|
5
|
+
context: '.'
|
6
6
|
dockerfile: Dockerfile-build
|
7
|
+
entrypoint: ./bin/entrypoint
|
7
8
|
environment:
|
8
9
|
- RAILS_ENV=${RAILS_ENV-development}
|
10
|
+
- SAM_CLI_TELEMETRY=0
|
9
11
|
- AWS_PROFILE=${AWS_PROFILE-default}
|
12
|
+
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
13
|
+
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
10
14
|
- AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION-us-east-1}
|
11
|
-
-
|
15
|
+
- CI=${CI}
|
12
16
|
volumes:
|
13
|
-
- ${
|
14
|
-
-
|
15
|
-
- ~/.ssh/known_hosts:/root/.ssh/known_hosts
|
16
|
-
- .:/var/task:delegated
|
17
|
+
- ${PWD}:/var/task
|
18
|
+
- ${HOME}/.aws:/root/.aws
|
17
19
|
- /var/run/docker.sock:/var/run/docker.sock
|
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:
|
4
|
+
version: 3.0.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: 2021-05-
|
11
|
+
date: 2021-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -159,6 +159,7 @@ files:
|
|
159
159
|
- lib/lamby/rack_http.rb
|
160
160
|
- lib/lamby/rack_rest.rb
|
161
161
|
- lib/lamby/railtie.rb
|
162
|
+
- lib/lamby/runner.rb
|
162
163
|
- lib/lamby/sam_helpers.rb
|
163
164
|
- lib/lamby/ssm_parameter_store.rb
|
164
165
|
- lib/lamby/tasks.rake
|