jets 5.0.7 → 5.0.8
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 +3 -0
- data/lib/jets/builders/handler_generator.rb +1 -1
- data/lib/jets/commands/deploy/deploy_command.rb +1 -1
- data/lib/jets/core.rb +2 -2
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +2 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +2 -0
- data/lib/jets/job/base.rb +7 -7
- data/lib/jets/job/dsl/s3_event.rb +4 -4
- data/lib/jets/job/helpers/{kinesis_event_helper.rb → kinesis_event.rb} +1 -1
- data/lib/jets/job/helpers/{log_event_helper.rb → log_event.rb} +1 -1
- data/lib/jets/job/helpers/s3_event.rb +50 -0
- data/lib/jets/job/helpers/{sns_event_helper.rb → sns_event.rb} +8 -6
- data/lib/jets/job/helpers/{sqs_event_helper.rb → sqs_event.rb} +8 -6
- data/lib/jets/stack/function.rb +2 -0
- data/lib/jets/version.rb +1 -1
- metadata +6 -6
- data/lib/jets/job/helpers/s3_event_helper.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c9deeac005b373929e04e747ce2465b82eccc49a99a39830025228e1da199e7
|
4
|
+
data.tar.gz: e1e5849237312cfe6725a1d4bd163b8b17f4ef904a000b5c5323de05a7afbaf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c351ace071bea12bca7785140d1a3cd0abcc8750a1e06d99cbe5691af1a26a573f8ff915a1d4569dd97c736df852d83d8944161c2387c42791588f568d13e17f
|
7
|
+
data.tar.gz: 1bef67bd4957279b84d2315597568a78c4fe17806d659116dd59f55018e242b432fbc23d186ca4e171f97db001ac22c5f86158049b817713b2ead712158eb419
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## [5.0.8] - 2023-12-24
|
7
|
+
- [#702](https://github.com/rubyonjets/jets/pull/702) prettier event helpers IE: s3_events vs s3_event_payloads
|
8
|
+
|
6
9
|
## [5.0.7] - 2023-12-24
|
7
10
|
- [#699](https://github.com/rubyonjets/jets/pull/699) cache Stack.lookup output in class memory
|
8
11
|
- [#700](https://github.com/rubyonjets/jets/pull/700) update s3 sns and sqs event helpers to return all events
|
data/lib/jets/core.rb
CHANGED
data/lib/jets/job/base.rb
CHANGED
@@ -10,17 +10,17 @@ module Jets::Job
|
|
10
10
|
include Dsl
|
11
11
|
|
12
12
|
# non-DSL methods
|
13
|
-
include Helpers::
|
14
|
-
include Helpers::
|
15
|
-
include Helpers::
|
16
|
-
include Helpers::
|
17
|
-
include Helpers::
|
13
|
+
include Helpers::KinesisEvent
|
14
|
+
include Helpers::LogEvent
|
15
|
+
include Helpers::S3Event
|
16
|
+
include Helpers::SnsEvent
|
17
|
+
include Helpers::SqsEvent
|
18
18
|
prepend Jets::ExceptionReporting::Process
|
19
19
|
|
20
20
|
# Tracks bucket each time an s3_event is declared
|
21
21
|
# Map of bucket_name => stack_name (nested part)
|
22
|
-
cattr_accessor :
|
23
|
-
self.
|
22
|
+
cattr_accessor :_s3_events # dont want this to be inheritable intentionally
|
23
|
+
self._s3_events = {}
|
24
24
|
|
25
25
|
class << self
|
26
26
|
def process(event, context, meth)
|
@@ -11,7 +11,7 @@ module Jets::Job::Dsl
|
|
11
11
|
# We will not generate them again. However, we still need to always
|
12
12
|
# add the depends_on declaration to ensure that the shared stack parameters
|
13
13
|
# are properly passed to the nested child stack.
|
14
|
-
stack_name =
|
14
|
+
stack_name = _s3_events[bucket_name] # already registered
|
15
15
|
if stack_name
|
16
16
|
depends_on stack_name.underscore.to_sym, class_prefix: true # always add this
|
17
17
|
return stack_name
|
@@ -20,7 +20,7 @@ module Jets::Job::Dsl
|
|
20
20
|
# Create shared resources - one time
|
21
21
|
stack_name = declare_shared_s3_event_resources(bucket_name)
|
22
22
|
depends_on stack_name.underscore.to_sym, class_prefix: true # always add this
|
23
|
-
self.
|
23
|
+
self._s3_events[bucket_name] = stack_name # tracks buckets already set up
|
24
24
|
end
|
25
25
|
|
26
26
|
def declare_shared_s3_event_resources(bucket_name)
|
@@ -29,8 +29,8 @@ module Jets::Job::Dsl
|
|
29
29
|
s3_stack.stack_name
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
Jets::Job::Base.
|
32
|
+
def _s3_events
|
33
|
+
Jets::Job::Base._s3_events
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Jets::Job::Helpers
|
2
|
+
module S3Event
|
3
|
+
def s3_events
|
4
|
+
encoded_messages = event["Records"].map do |record|
|
5
|
+
record["Sns"]["Message"] # SNS message is JSON
|
6
|
+
end
|
7
|
+
# Decode the JSON messages
|
8
|
+
messages = encoded_messages.map do |message|
|
9
|
+
JSON.load(message)
|
10
|
+
end
|
11
|
+
# Extract the S3 event records
|
12
|
+
messages.map do |message|
|
13
|
+
message["Records"].map do |record|
|
14
|
+
ActiveSupport::HashWithIndifferentAccess.new(record)
|
15
|
+
end
|
16
|
+
end.flatten
|
17
|
+
end
|
18
|
+
alias s3_event_payloads s3_events
|
19
|
+
|
20
|
+
def s3_events?
|
21
|
+
event["Records"]&.any? { |r| r.dig("Sns", "Message") }
|
22
|
+
end
|
23
|
+
alias s3_event_payloads? s3_events?
|
24
|
+
|
25
|
+
def s3_objects
|
26
|
+
s3_events.map do |record|
|
27
|
+
record["s3"]["object"]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def s3_objects?
|
32
|
+
s3_events.any? { |r| r.dig("s3", "object") }
|
33
|
+
end
|
34
|
+
|
35
|
+
# Deprecated methods below
|
36
|
+
def s3_event
|
37
|
+
puts "WARN: s3_event is deprecated".color(:yellow)
|
38
|
+
puts "It can possibly drop events when they come in extremely fast."
|
39
|
+
puts "Use s3_events instead"
|
40
|
+
s3_events.first
|
41
|
+
end
|
42
|
+
|
43
|
+
def s3_object
|
44
|
+
puts "WARN: s3_object is deprecated".color(:yellow)
|
45
|
+
puts "It can possibly drop events when they come in extremely fast."
|
46
|
+
puts "Use s3_objects instead"
|
47
|
+
s3_objects.first
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Jets::Job::Helpers
|
2
|
-
module
|
3
|
-
def
|
2
|
+
module SnsEvent
|
3
|
+
def sns_events
|
4
4
|
records = event["Records"]
|
5
5
|
return [] unless records
|
6
6
|
records.map do |record|
|
@@ -8,17 +8,19 @@ module Jets::Job::Helpers
|
|
8
8
|
ActiveSupport::HashWithIndifferentAccess.new(JSON.load(message))
|
9
9
|
end
|
10
10
|
end
|
11
|
+
alias sns_event_payloads sns_events
|
11
12
|
|
12
|
-
def
|
13
|
+
def sns_events?
|
13
14
|
event["Records"]&.any? { |r| r.dig("Sns", "Message") }
|
14
15
|
end
|
16
|
+
alias sns_event_payloads? sns_events?
|
15
17
|
|
16
18
|
# Deprecated methods below
|
17
19
|
def sns_event_payload
|
18
20
|
puts "WARN: sns_event_payload is deprecated".color(:yellow)
|
19
|
-
puts "It can possibly drop events when come in extremely fast."
|
20
|
-
puts "Use
|
21
|
-
|
21
|
+
puts "It can possibly drop events when they come in extremely fast."
|
22
|
+
puts "Use sns_events instead"
|
23
|
+
sns_events.first
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Jets::Job::Helpers
|
2
|
-
module
|
3
|
-
def
|
2
|
+
module SqsEvent
|
3
|
+
def sqs_events
|
4
4
|
records = event["Records"]
|
5
5
|
return [] unless records
|
6
6
|
records.map do |record|
|
@@ -8,17 +8,19 @@ module Jets::Job::Helpers
|
|
8
8
|
ActiveSupport::HashWithIndifferentAccess.new(JSON.load(message))
|
9
9
|
end
|
10
10
|
end
|
11
|
+
alias sqs_event_payloads sqs_events
|
11
12
|
|
12
|
-
def
|
13
|
+
def sqs_events?
|
13
14
|
event["Records"]&.any? { |r| r.dig("body") }
|
14
15
|
end
|
16
|
+
alias sqs_event_payloads? sqs_events?
|
15
17
|
|
16
18
|
# Deprecated methods below
|
17
19
|
def sqs_event_payload
|
18
20
|
puts "WARN: sqs_event_payload is deprecated".color(:yellow)
|
19
|
-
puts "It can possibly drop events when come in extremely fast."
|
20
|
-
puts "Use
|
21
|
-
|
21
|
+
puts "It can possibly drop events when they come in extremely fast."
|
22
|
+
puts "Use sqs_events instead"
|
23
|
+
sqs_events.first
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
data/lib/jets/stack/function.rb
CHANGED
@@ -56,6 +56,8 @@ class Jets::Stack
|
|
56
56
|
|
57
57
|
# Internal flag is mainly used to disable WARN messages
|
58
58
|
def internal?
|
59
|
+
return true if internal_search_expression.include?("jets/base_path")
|
60
|
+
return true if internal_search_expression.include?("jets/s3_bucket_config")
|
59
61
|
!!Dir.glob(internal_search_expression).first
|
60
62
|
end
|
61
63
|
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
@@ -1039,11 +1039,11 @@ files:
|
|
1039
1039
|
- lib/jets/job/dsl/s3_event.rb
|
1040
1040
|
- lib/jets/job/dsl/sns_event.rb
|
1041
1041
|
- lib/jets/job/dsl/sqs_event.rb
|
1042
|
-
- lib/jets/job/helpers/
|
1043
|
-
- lib/jets/job/helpers/
|
1044
|
-
- lib/jets/job/helpers/
|
1045
|
-
- lib/jets/job/helpers/
|
1046
|
-
- lib/jets/job/helpers/
|
1042
|
+
- lib/jets/job/helpers/kinesis_event.rb
|
1043
|
+
- lib/jets/job/helpers/log_event.rb
|
1044
|
+
- lib/jets/job/helpers/s3_event.rb
|
1045
|
+
- lib/jets/job/helpers/sns_event.rb
|
1046
|
+
- lib/jets/job/helpers/sqs_event.rb
|
1047
1047
|
- lib/jets/klass.rb
|
1048
1048
|
- lib/jets/lambda/definition.rb
|
1049
1049
|
- lib/jets/lambda/dsl.rb
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Jets::Job::Helpers
|
2
|
-
module S3EventHelper
|
3
|
-
def s3_event_payloads
|
4
|
-
messages = event["Records"].map do |record|
|
5
|
-
record["Sns"]["Message"]
|
6
|
-
end
|
7
|
-
messages.map do |message|
|
8
|
-
h = JSON.load(message)
|
9
|
-
ActiveSupport::HashWithIndifferentAccess.new(h)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def s3_event_payloads?
|
14
|
-
event["Records"]&.any? { |r| r.dig("Sns", "Message") }
|
15
|
-
end
|
16
|
-
|
17
|
-
def s3_objects
|
18
|
-
s3_event_payloads.map do |payload|
|
19
|
-
records = payload["Records"]
|
20
|
-
records.map do |record|
|
21
|
-
record["s3"]["object"]
|
22
|
-
end
|
23
|
-
end.flatten
|
24
|
-
end
|
25
|
-
|
26
|
-
def s3_objects?
|
27
|
-
s3_event_payloads["Records"]&.any? { |r| r.dig("s3", "object") }
|
28
|
-
end
|
29
|
-
|
30
|
-
# Deprecated methods below
|
31
|
-
def s3_event
|
32
|
-
puts "WARN: s3_event is deprecated".color(:yellow)
|
33
|
-
puts "It can possibly drop events when come in extremely fast."
|
34
|
-
puts "Use s3_event_payloads instead"
|
35
|
-
s3_event_payloads.first
|
36
|
-
end
|
37
|
-
|
38
|
-
def s3_object
|
39
|
-
puts "WARN: s3_object is deprecated".color(:yellow)
|
40
|
-
puts "It can possibly drop events when come in extremely fast."
|
41
|
-
puts "Use s3_objects instead"
|
42
|
-
s3_objects.first
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|