idlc-sdk-core 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f110a40c0475644f42a653944a6507cb0ac998c004fcf447a0d716bcc46a8e6d
4
- data.tar.gz: b398e3d0947432b0597e0da6ec34e98b4f25ebb299a6fb0162ae96fbf57382ad
3
+ metadata.gz: 500bdd1c4b7d4ed0bd6b41f9135a08e8a919af7555bd2a22009583f4f075f1ab
4
+ data.tar.gz: b05d0a45a019971ec72365a7f56f84b4bbc0ff871cd566d11b7251fb64d6de16
5
5
  SHA512:
6
- metadata.gz: 403f79d1ab3c35dd2d3498dc40d88333386e5eb2b3b8ab38b0c835f2fb72348df13094b157e01347e431e0ee6645d236f465472a94cccdc72ba1c14b484b1325
7
- data.tar.gz: 92971b262380ef5184d44bf7ded58af8a65914cf3d2e6a9d534b2bc81728a01a0c2b5c79e236a3ad28f69dfc96533e3acbc0f33ac8d31fb9c0a53c70166b4317
6
+ metadata.gz: 6e40815ac1d0b371ab824c952f76693ba91a47cde19e2e4d22373162488a2115574adfc6e2f5b08a2e4cd80792872a5cdac70a6b60c62799329e2c96ce189b9e
7
+ data.tar.gz: 9d4e3d8f09fe3b42248d684caaaef8c82bd800e770a8b4920ddb3f58cba3ab39d3f2eb191a3877cb1e93449faf14c28bb43e5942d3ae2cb86dc4c275edf92a1f
@@ -7,20 +7,43 @@ require 'aws-sdk-lambda'
7
7
 
8
8
  module Idlc
9
9
  class AWSLambdaProxy
10
+ include Helpers
11
+
10
12
  def fetch(request)
11
13
  client = Aws::Lambda::Client.new()
12
14
 
13
15
  request[:function] = "#{request[:service]}-" + Idlc::SERVICES[request[:service]]['stage'] + "-#{request[:lambda]}"
14
16
  request[:httpMethod] = request[:method]
15
17
 
16
- resp = client.invoke({
17
- function_name: "service-lambda-proxy",
18
- invocation_type: "RequestResponse",
19
- log_type: "None",
20
- payload: request.to_json,
21
- })
18
+ retries = 0
19
+ max_retries = 5
20
+ sleep_time = 5
21
+ exp_backoff = 2
22
+ result = nil
23
+
24
+ loop do
25
+ begin
26
+ resp = client.invoke({
27
+ function_name: "service-lambda-proxy",
28
+ invocation_type: "RequestResponse",
29
+ log_type: "None",
30
+ payload: request.to_json,
31
+ })
32
+
33
+ result = JSON.parse(JSON.parse(JSON.parse(resp.payload.string)['Payload'])['body'])
34
+ break
35
+ rescue Exception => e
36
+ break if retries >= max_retries
37
+ retries += 1
38
+ msg("RequestFailed: #{e} - Waiting #{sleep_time}s then retrying... (#{retries} of #{max_retries})")
39
+
40
+
41
+ sleep sleep_time
42
+ sleep_time *= exp_backoff # use an exponential backoff when retrying requests
43
+ end
44
+ end
22
45
 
23
- JSON.parse(JSON.parse(JSON.parse(resp.payload.string)['Payload'])['body'])
46
+ result
24
47
  end
25
48
  end
26
49
 
@@ -1,3 +1,3 @@
1
1
  module Idlc
2
- VERSION = '1.1.1'.freeze
2
+ VERSION = '1.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idlc-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Cazell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-28 00:00:00.000000000 Z
11
+ date: 2018-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler