faux-lambda 0.5 → 0.5.1
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/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