faux-lambda 0.5 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +2 -2
- data/bin/faux-lambda +11 -1
- data/lib/faux_lambda/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87764a85a01fcb5d17b6f530c6bd937351b250ba
|
4
|
+
data.tar.gz: 812b5811990bfe757370e139303d4635ad3261c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc6796056d6448cc034e558d353804526ea77e6c33550a575caacd7f20b0ca2a4895efd8eff99523172dcd8d7f38ca1006e96de72a8e23ff4649cdca28e784e8
|
7
|
+
data.tar.gz: 9c1b1505f25c727db6f60636d6bf80c70bfd4bed1102aa05eef05b91f710c25349fb20e16a5a4a8e68be044ae4ac9c46d988f2559ea5ba0d8d2808ab1bb9c03b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -8,13 +8,13 @@ In its simplest form:
|
|
8
8
|
```
|
9
9
|
gem install faux-lambda
|
10
10
|
faux-lambda --reply='{}' &
|
11
|
-
aws --endpoint http://localhost:9123 lambda invoke --function-name whatever
|
11
|
+
aws --endpoint http://localhost:9123 lambda invoke --function-name whatever /dev/stdout
|
12
12
|
```
|
13
13
|
|
14
14
|
The CLI can also simulate specific scenarios:
|
15
15
|
```
|
16
16
|
$ faux-lambda --function=foo --reply='{}' --function=bar --reply='{}' --reply='{}' --fail &
|
17
|
-
$ aws --endpoint http://localhost:12345 lambda invoke --function-name foo
|
17
|
+
$ aws --endpoint http://localhost:12345 lambda invoke --function-name foo /dev/stdout
|
18
18
|
Called foo with ...
|
19
19
|
{}
|
20
20
|
```
|
data/bin/faux-lambda
CHANGED
@@ -22,10 +22,12 @@ parser = OptionParser.new do |opts|
|
|
22
22
|
opts.banner = "AWS Lambda debugging endpoint, version #{FauxLambda::VERSION}."
|
23
23
|
opts.separator('')
|
24
24
|
opts.separator('Usage: faux-lambda --reply "Hello world!"')
|
25
|
+
opts.separator('Query specifiers:')
|
25
26
|
opts.on('--function name', '-f name', 'Name of function to expect, optionally with :<qualifier>') do |function_name|
|
26
27
|
current_function = function_name
|
27
28
|
functions[current_function] = {replies: []}
|
28
29
|
end
|
30
|
+
opts.separator('Reply specifiers:')
|
29
31
|
opts.on('--reply payload', '-r payload', 'Data to respond with') do |payload|
|
30
32
|
functions[current_function][:replies] << payload
|
31
33
|
end
|
@@ -52,12 +54,19 @@ def function_data(functions, function_name, qualifier)
|
|
52
54
|
functions[qualified_function_name] || functions[function_name] || functions[:default]
|
53
55
|
end
|
54
56
|
|
57
|
+
def log(function_name, qualifier, payload, status_code, reply)
|
58
|
+
qualifier ||= "$LATEST"
|
59
|
+
puts "#{function_name}:#{qualifier} called with #{payload}, replying #{status_code}: #{reply}"
|
60
|
+
end
|
61
|
+
|
55
62
|
app = Proc.new do |env|
|
56
63
|
_, version, _, function_name, _ = env['REQUEST_PATH'].split('/')
|
57
64
|
raise "Unknown version #{version}" unless version == '2015-03-31'
|
58
65
|
qs = Rack::Utils.parse_nested_query(env["QUERY_STRING"])
|
66
|
+
qualifier = qs["Qualifier"]
|
67
|
+
payload = env['rack.input'].read
|
59
68
|
|
60
|
-
data = function_data(functions, function_name,
|
69
|
+
data = function_data(functions, function_name, qualifier)
|
61
70
|
reply = reply_from(data[:replies])
|
62
71
|
if reply.nil?
|
63
72
|
status_code = '404'
|
@@ -69,6 +78,7 @@ app = Proc.new do |env|
|
|
69
78
|
status_code = '200'
|
70
79
|
end
|
71
80
|
|
81
|
+
log(function_name, qualifier, payload, status_code, reply)
|
72
82
|
headers = {'Content-Type' => 'application/octet-stream'}
|
73
83
|
[status_code, headers, [reply]]
|
74
84
|
end
|
data/lib/faux_lambda/version.rb
CHANGED