elasticgraph-indexer_lambda 0.18.0.4 → 0.19.0.0.rc1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fbd6851f8d0d3b534a29e9966af449fe830e702388add5e59007268718884643
4
- data.tar.gz: f6b8751a60b161d79e8cc59ab959287037cfd7702cc7dac69b584b08c72e8ca0
3
+ metadata.gz: 3bfc9565971f681207f41974cda4f44cf821992c8409b15cc5beac389ca1a434
4
+ data.tar.gz: 5039dcacf6cf702d4b889d6518a54932d9a45a52e6ec151d42db43bef912372a
5
5
  SHA512:
6
- metadata.gz: f6d2360305069114468626b67e889d21eaa8a45c269446e995e9eb3fa1c836e32cd54a5bc3717c9c52e13f70155dbe27d045549e68382108440de680e800b67e
7
- data.tar.gz: d534b6e2c0c6c59c5f90ba92b4f79d3c1014a51e3f0074a14c932140e650f19801d49dfc08cfca867e55075d3ae1bce0089f3d3bf4e11388b7efec9805b4bedb
6
+ metadata.gz: 9acd5b9b9fa5690f48d404ac02ce67514d063a701ab826b5b32986876f5adce7f8ed957edfa740134357e9da4630787ef584501727318670ba74c5c0ffeb9cb9
7
+ data.tar.gz: 77bf6c267ae7f27cccaa24e8bda41112a63548a7f396840cb0932669b3de63a26b9a820b48b1108738ad77f8131d446b53aa17a193798c3dbe1f094900ab5b16
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # frozen_string_literal: true
8
8
 
9
- require "elastic_graph/error"
9
+ require "elastic_graph/errors"
10
10
  require "elastic_graph/indexer/indexing_failures_error"
11
11
  require "json"
12
12
 
@@ -23,7 +23,7 @@ module ElasticGraph
23
23
  @s3_client = s3_client
24
24
  end
25
25
 
26
- # Processes the ElasticGraph events in the given `lambda_event`, indexing the data in the database.
26
+ # Processes the ElasticGraph events in the given `lambda_event`, indexing the data in the datastore.
27
27
  def process(lambda_event, refresh_indices: false)
28
28
  events = events_from(lambda_event)
29
29
  failures = @indexer_processor.process_returning_failures(events, refresh_indices: refresh_indices)
@@ -66,12 +66,20 @@ module ElasticGraph
66
66
  # ...
67
67
  # Note: "\n" at the end of each line is a single byte newline control character, instead of a string sequence
68
68
  def events_from(lambda_event)
69
+ sqs_received_at_by_message_id = {} # : Hash[String, String]
69
70
  lambda_event.fetch("Records").flat_map do |record|
70
71
  sqs_metadata = extract_sqs_metadata(record)
71
-
72
+ if (message_id = sqs_metadata.fetch("message_id", nil))
73
+ sqs_received_at_by_message_id[message_id] = sqs_metadata.dig("latency_timestamps", "sqs_received_at")
74
+ end
72
75
  parse_jsonl(record.fetch("body")).map do |event|
73
76
  ElasticGraph::Support::HashUtil.deep_merge(event, sqs_metadata)
74
77
  end
78
+ end.tap do
79
+ @logger.info({
80
+ "message_type" => "ReceivedSqsMessages",
81
+ "sqs_received_at_by_message_id" => sqs_received_at_by_message_id
82
+ })
75
83
  end
76
84
  end
77
85
 
@@ -110,7 +118,7 @@ module ElasticGraph
110
118
  begin
111
119
  s3_client.get_object(bucket: bucket_name, key: object_key).body.read
112
120
  rescue Aws::S3::Errors::ServiceError => e
113
- raise S3OperationFailedError, "Error reading large message from S3. bucket: `#{bucket_name}` key: `#{object_key}` message: `#{e.message}`"
121
+ raise Errors::S3OperationFailedError, "Error reading large message from S3. bucket: `#{bucket_name}` key: `#{object_key}` message: `#{e.message}`"
114
122
  end
115
123
  end
116
124
 
@@ -134,7 +142,7 @@ module ElasticGraph
134
142
  if failure_ids.any? { |f| f.fetch("itemIdentifier").nil? }
135
143
  # If we are not able to identify one or more failed events, then we must raise an exception instead of
136
144
  # returning `batchItemFailures`. Otherwise, the unidentified failed events will not get retried.
137
- raise MessageIdsMissingError, "Unexpected: some failures did not have a `message_id`, so we are raising an exception instead of returning `batchItemFailures`."
145
+ raise Errors::MessageIdsMissingError, "Unexpected: some failures did not have a `message_id`, so we are raising an exception instead of returning `batchItemFailures`."
138
146
  end
139
147
 
140
148
  {"batchItemFailures" => failure_ids}
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticgraph-indexer_lambda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0.4
4
+ version: 0.19.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myron Marston
8
+ - Ben VandenBos
9
+ - Block Engineering
8
10
  autorequire:
9
11
  bindir: exe
10
12
  cert_chain: []
11
- date: 2024-09-06 00:00:00.000000000 Z
13
+ date: 2024-12-03 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: rubocop-factory_bot
@@ -44,42 +46,42 @@ dependencies:
44
46
  requirements:
45
47
  - - "~>"
46
48
  - !ruby/object:Gem::Version
47
- version: '3.0'
49
+ version: '3.1'
48
50
  type: :development
49
51
  prerelease: false
50
52
  version_requirements: !ruby/object:Gem::Requirement
51
53
  requirements:
52
54
  - - "~>"
53
55
  - !ruby/object:Gem::Version
54
- version: '3.0'
56
+ version: '3.1'
55
57
  - !ruby/object:Gem::Dependency
56
58
  name: standard
57
59
  requirement: !ruby/object:Gem::Requirement
58
60
  requirements:
59
61
  - - "~>"
60
62
  - !ruby/object:Gem::Version
61
- version: 1.40.0
63
+ version: 1.41.0
62
64
  type: :development
63
65
  prerelease: false
64
66
  version_requirements: !ruby/object:Gem::Requirement
65
67
  requirements:
66
68
  - - "~>"
67
69
  - !ruby/object:Gem::Version
68
- version: 1.40.0
70
+ version: 1.41.0
69
71
  - !ruby/object:Gem::Dependency
70
72
  name: steep
71
73
  requirement: !ruby/object:Gem::Requirement
72
74
  requirements:
73
75
  - - "~>"
74
76
  - !ruby/object:Gem::Version
75
- version: '1.7'
77
+ version: '1.8'
76
78
  type: :development
77
79
  prerelease: false
78
80
  version_requirements: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - "~>"
81
83
  - !ruby/object:Gem::Version
82
- version: '1.7'
84
+ version: '1.8'
83
85
  - !ruby/object:Gem::Dependency
84
86
  name: coderay
85
87
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +136,14 @@ dependencies:
134
136
  requirements:
135
137
  - - "~>"
136
138
  - !ruby/object:Gem::Version
137
- version: '0.12'
139
+ version: '0.13'
138
140
  type: :development
139
141
  prerelease: false
140
142
  version_requirements: !ruby/object:Gem::Requirement
141
143
  requirements:
142
144
  - - "~>"
143
145
  - !ruby/object:Gem::Version
144
- version: '0.12'
146
+ version: '0.13'
145
147
  - !ruby/object:Gem::Dependency
146
148
  name: simplecov
147
149
  requirement: !ruby/object:Gem::Requirement
@@ -190,28 +192,28 @@ dependencies:
190
192
  requirements:
191
193
  - - '='
192
194
  - !ruby/object:Gem::Version
193
- version: 0.18.0.4
195
+ version: 0.19.0.0.rc1
194
196
  type: :runtime
195
197
  prerelease: false
196
198
  version_requirements: !ruby/object:Gem::Requirement
197
199
  requirements:
198
200
  - - '='
199
201
  - !ruby/object:Gem::Version
200
- version: 0.18.0.4
202
+ version: 0.19.0.0.rc1
201
203
  - !ruby/object:Gem::Dependency
202
204
  name: elasticgraph-lambda_support
203
205
  requirement: !ruby/object:Gem::Requirement
204
206
  requirements:
205
207
  - - '='
206
208
  - !ruby/object:Gem::Version
207
- version: 0.18.0.4
209
+ version: 0.19.0.0.rc1
208
210
  type: :runtime
209
211
  prerelease: false
210
212
  version_requirements: !ruby/object:Gem::Requirement
211
213
  requirements:
212
214
  - - '='
213
215
  - !ruby/object:Gem::Version
214
- version: 0.18.0.4
216
+ version: 0.19.0.0.rc1
215
217
  - !ruby/object:Gem::Dependency
216
218
  name: aws-sdk-s3
217
219
  requirement: !ruby/object:Gem::Requirement
@@ -267,10 +269,15 @@ files:
267
269
  - lib/elastic_graph/indexer_lambda.rb
268
270
  - lib/elastic_graph/indexer_lambda/lambda_function.rb
269
271
  - lib/elastic_graph/indexer_lambda/sqs_processor.rb
270
- homepage:
272
+ homepage: https://block.github.io/elasticgraph/
271
273
  licenses:
272
274
  - MIT
273
275
  metadata:
276
+ bug_tracker_uri: https://github.com/block/elasticgraph/issues
277
+ changelog_uri: https://github.com/block/elasticgraph/releases/tag/v0.19.0.0.rc1
278
+ documentation_uri: https://block.github.io/elasticgraph/docs/main/
279
+ homepage_uri: https://block.github.io/elasticgraph/
280
+ source_code_uri: https://github.com/block/elasticgraph/tree/v0.19.0.0.rc1/elasticgraph-indexer_lambda
274
281
  gem_category: lambda
275
282
  post_install_message:
276
283
  rdoc_options: []