lambda_punch 1.0.3 → 1.1.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/CHANGELOG.md +7 -1
- data/README.md +21 -21
- data/exe/lambda_punch +10 -0
- data/lib/lambda_punch/version.rb +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad3d3b5bc8d71f3ec550dc01f998e4df18c77b839b9dd4c44d010a08b5bf25d5
|
4
|
+
data.tar.gz: 106ecd9404fe6a570166f5a2dfc6e7654f427aec9fc1e77df2154d4031409982
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9526b2c0ec7490eeb323df242a0b2537cc3c783aad1c6bd622bdec58354abb1f5b0230833947ded1f8242eacd1d15625cc581a34e6d822e3343adc3732124cb
|
7
|
+
data.tar.gz: 105223ed92a8f3782e376f9d3d472d70d0a807a984a5f94425d3332450fae150dcf20c67771898741dc2134efa67c8db262dd8efb14ddfe89dc46d6cc2214870
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# 👊 LambdaPunch
|
6
6
|
|
7
|
-
<a href="https://lamby.custominktech.com"><img src="https://
|
7
|
+
<a href="https://lamby.custominktech.com"><img src="https://raw.githubusercontent.com/customink/lamby/master/images/social2.png" alt="Lamby: Simple Rails & AWS Lambda Integration using Rack." align="right" width="450" style="margin-left:1rem;margin-bottom:1rem;" /></a>Asynchronous background job processing for AWS Lambda with Ruby using [Lambda Extensions](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html). Inspired by the [SuckerPunch](https://github.com/brandonhilkert/sucker_punch) gem but specifically tooled to work with Lambda's invoke model.
|
8
8
|
|
9
9
|
**For a more robust background job solution, please consider using AWS SQS with the [Lambdakiq](https://github.com/customink/lambdakiq) gem. A drop-in replacement for [Sidekiq](https://github.com/mperham/sidekiq) when running Rails in AWS Lambda using the [Lamby](https://lamby.custominktech.com/) gem.**
|
10
10
|
|
@@ -18,35 +18,36 @@ The LambdaPunch extension process is very small and lean. It only requires a few
|
|
18
18
|
|
19
19
|
## 🎁 Installation
|
20
20
|
|
21
|
-
Add this line to your project's `Gemfile` and then make sure to `bundle install` afterward.
|
21
|
+
Add this line to your project's `Gemfile` and then make sure to `bundle install` afterward. It is only needed in the `production` group.
|
22
22
|
|
23
23
|
```ruby
|
24
24
|
gem 'lambda_punch'
|
25
25
|
```
|
26
26
|
|
27
|
-
|
27
|
+
Within your project or [Rails application's](https://lamby.custominktech.com/docs/anatomy) `Dockerfile`, add the following. Make sure you do this before you `COPY` your code. The idea is to implicitly use the default `USER root` since it needs permissions to create an `/opt/extensions` directory.
|
28
28
|
|
29
|
-
```
|
30
|
-
|
31
|
-
|
32
|
-
def handler(event:, context:)
|
33
|
-
# ...
|
34
|
-
ensure
|
35
|
-
LambdaPunch.handled!(context)
|
36
|
-
end
|
29
|
+
```dockerfile
|
30
|
+
RUN gem install lambda_punch && lambda_punch install
|
37
31
|
```
|
38
32
|
|
39
|
-
|
33
|
+
Installation with AWS Lambda via the [Lamby](https://lamby.custominktech.com/) v4 (or higher) gem can be done using Lamby's `handled_proc` config. For example, appends these to your `config/environments/production.rb` file. Here we are ensuring that the LambdaPunch DRb server is running and that after each Lamby request we notify LambdaPunch.
|
40
34
|
|
41
|
-
```
|
42
|
-
|
35
|
+
```ruby
|
36
|
+
config.to_prepare { LambdaPunch.start_server! }
|
37
|
+
config.lamby.handled_proc = Proc.new do |_event, context|
|
38
|
+
LambdaPunch.handled!(context)
|
39
|
+
end
|
43
40
|
```
|
44
41
|
|
45
|
-
If you are using
|
42
|
+
If you are using an older version of Lamby or a simple Ruby project with your own handler method, the installation would look something like this:
|
46
43
|
|
47
44
|
```ruby
|
48
|
-
|
49
|
-
|
45
|
+
LambdaPunch.start_server!
|
46
|
+
def handler(event:, context:)
|
47
|
+
# ...
|
48
|
+
ensure
|
49
|
+
LambdaPunch.handled!(context)
|
50
|
+
end
|
50
51
|
```
|
51
52
|
|
52
53
|
## 🧰 Usage
|
@@ -59,12 +60,11 @@ LambdaPunch.push do
|
|
59
60
|
end
|
60
61
|
```
|
61
62
|
|
62
|
-
|
63
|
+
A common use case would be to ensure the [New Relic APM](https://dev.to/aws-heroes/using-new-relic-apm-with-rails-on-aws-lambda-51gi) flushes its data after each request. Using Lamby in your `config/environments/production.rb` file would look like this:
|
63
64
|
|
64
65
|
```ruby
|
65
|
-
|
66
|
-
|
67
|
-
ensure
|
66
|
+
config.to_prepare { LambdaPunch.start_server! }
|
67
|
+
config.lamby.handled_proc = Proc.new do |_event, context|
|
68
68
|
LambdaPunch.push { NewRelic::Agent.agent.flush_pipe_data }
|
69
69
|
LambdaPunch.handled!(context)
|
70
70
|
end
|
data/exe/lambda_punch
ADDED
data/lib/lambda_punch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lambda_punch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Collins
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -111,7 +111,8 @@ dependencies:
|
|
111
111
|
description: 'LambdaPunch: Async Processing using Lambda Extensions'
|
112
112
|
email:
|
113
113
|
- ken@metaskills.net
|
114
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- lambda_punch
|
115
116
|
extensions: []
|
116
117
|
extra_rdoc_files: []
|
117
118
|
files:
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- bin/setup
|
134
135
|
- bin/test
|
135
136
|
- docker-compose.yml
|
137
|
+
- exe/lambda_punch
|
136
138
|
- lambda_punch.gemspec
|
137
139
|
- lib/lambda_punch.rb
|
138
140
|
- lib/lambda_punch/api.rb
|
@@ -154,7 +156,7 @@ metadata:
|
|
154
156
|
homepage_uri: https://github.com/customink/lambda_punch
|
155
157
|
source_code_uri: https://github.com/customink/lambda_punch
|
156
158
|
changelog_uri: https://github.com/customink/lambda_punch/blob/main/CHANGELOG.md
|
157
|
-
post_install_message:
|
159
|
+
post_install_message:
|
158
160
|
rdoc_options: []
|
159
161
|
require_paths:
|
160
162
|
- lib
|
@@ -169,8 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
171
|
- !ruby/object:Gem::Version
|
170
172
|
version: '0'
|
171
173
|
requirements: []
|
172
|
-
rubygems_version: 3.
|
173
|
-
signing_key:
|
174
|
+
rubygems_version: 3.4.7
|
175
|
+
signing_key:
|
174
176
|
specification_version: 4
|
175
177
|
summary: 'LambdaPunch: Async Processing using Lambda Extensions'
|
176
178
|
test_files: []
|