elasticgraph-lambda_support 0.18.0.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 +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +6 -0
- data/elasticgraph-lambda_support.gemspec +33 -0
- data/lib/elastic_graph/lambda_support/json_aware_lambda_log_formatter.rb +51 -0
- data/lib/elastic_graph/lambda_support/lambda_function.rb +69 -0
- data/lib/elastic_graph/lambda_support.rb +74 -0
- metadata +348 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a1164c6db4dc8da39c3040750fb7be0001762d123fe8f230e83d1947faa46ed2
|
4
|
+
data.tar.gz: b71fcfe9119a84a692ba9fc71195a3dec33c5a154fb5efb1048c1a078464ea04
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 875e927d312b89019252b074f08ce749cbdc5a401ae4f439adc240c23ab33d9825c34a3bf959943367f3cd71a11f49f2100564a8d41397574b725a64a7018aeb
|
7
|
+
data.tar.gz: 2c74f0d9b95b5189899ce91b6d72017fe9571c9d9fae70f0b31917bd718b89c4b8ceb8e20c97e8433ba71ffc4446aee2b7659195b419ffe82ee6d615dc4cce98
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2024 Block, Inc.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# Copyright 2024 Block, Inc.
|
2
|
+
#
|
3
|
+
# Use of this source code is governed by an MIT-style
|
4
|
+
# license that can be found in the LICENSE file or at
|
5
|
+
# https://opensource.org/licenses/MIT.
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
require_relative "../gemspec_helper"
|
10
|
+
|
11
|
+
ElasticGraphGemspecHelper.define_elasticgraph_gem(gemspec_file: __FILE__, category: :lambda) do |spec, eg_version|
|
12
|
+
spec.summary = "ElasticGraph gem that supports running ElasticGraph using AWS Lambda."
|
13
|
+
|
14
|
+
spec.add_dependency "elasticgraph-opensearch", eg_version
|
15
|
+
spec.add_dependency "faraday_middleware-aws-sigv4", "~> 1.0"
|
16
|
+
|
17
|
+
# Logger 1.6.0 is currently incompatible with AWS lambda due to how the lambda Ruby runtime monkey patches the Logger class:
|
18
|
+
#
|
19
|
+
# https://github.com/aws/aws-lambda-ruby-runtime-interface-client/issues/33
|
20
|
+
# https://github.com/ruby/logger/issues/99
|
21
|
+
#
|
22
|
+
# We don't actually need the logger gem but faraday 2.10 pulls it in as a dependency, and to avoid getting boot-time errors
|
23
|
+
# we need to prevent logger >= 1.6.0 from getting pulled in.
|
24
|
+
#
|
25
|
+
# Once the AWS lambda runtime issue is resolved, we can remove this dependency.
|
26
|
+
spec.add_dependency "logger", "< 1.6.0"
|
27
|
+
|
28
|
+
spec.add_development_dependency "elasticgraph-admin", eg_version
|
29
|
+
spec.add_development_dependency "elasticgraph-graphql", eg_version
|
30
|
+
spec.add_development_dependency "elasticgraph-indexer", eg_version
|
31
|
+
spec.add_development_dependency "elasticgraph-indexer_autoscaler_lambda", eg_version
|
32
|
+
spec.add_development_dependency "httpx", ">= 1.2.6", "< 2.0"
|
33
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# Copyright 2024 Block, Inc.
|
2
|
+
#
|
3
|
+
# Use of this source code is governed by an MIT-style
|
4
|
+
# license that can be found in the LICENSE file or at
|
5
|
+
# https://opensource.org/licenses/MIT.
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
require "json"
|
10
|
+
require "logger"
|
11
|
+
|
12
|
+
module ElasticGraph
|
13
|
+
module LambdaSupport
|
14
|
+
# A log formatter that supports JSON logging, without requiring _all_ logs to be emitted as JSON.
|
15
|
+
#
|
16
|
+
# If the `message` is a hash of JSON data, it will produce a JSON-formatted log message combining the
|
17
|
+
# standard bits of metadata the AWS Lambda logger already includes in every log message with the passed data.
|
18
|
+
#
|
19
|
+
# If it is not a hash of JSON data, it will just delegate to the default formatter used by AWS Lambda.
|
20
|
+
#
|
21
|
+
# This is particularly useful to support cloudwatch metric filtering:
|
22
|
+
# https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#metric-filters-extract-json
|
23
|
+
class JSONAwareLambdaLogFormatter < ::Logger::Formatter
|
24
|
+
# Copied from:
|
25
|
+
# https://github.com/aws/aws-lambda-ruby-runtime-interface-client/blob/2.0.0/lib/aws_lambda_ric/lambda_log_formatter.rb#L8
|
26
|
+
FORMAT = "%<sev>s, [%<datetime>s #%<process>d] %<severity>5s %<request_id>s -- %<progname>s: %<msg>s"
|
27
|
+
|
28
|
+
def call(severity, time, progname, msg)
|
29
|
+
metadata = {
|
30
|
+
# These bits of metadata come from the standard AWS Lambda log formatter:
|
31
|
+
# https://github.com/aws/aws-lambda-ruby-runtime-interface-client/blob/2.0.0/lib/aws_lambda_ric/lambda_log_formatter.rb#L11-L12
|
32
|
+
sev: severity[0..0],
|
33
|
+
datetime: format_datetime(time),
|
34
|
+
process: $$,
|
35
|
+
severity: severity,
|
36
|
+
# standard:disable Style/GlobalVars -- don't have a choice here; this is what the AWS Lambda runtime sets.
|
37
|
+
request_id: $_global_aws_request_id,
|
38
|
+
# standard:enable Style/GlobalVars
|
39
|
+
progname: progname
|
40
|
+
}
|
41
|
+
|
42
|
+
if msg.is_a?(::Hash)
|
43
|
+
::JSON.generate(msg.merge(metadata), space: " ")
|
44
|
+
else
|
45
|
+
# See https://github.com/aws/aws-lambda-ruby-runtime-interface-client/blob/2.0.0/lib/aws_lambda_ric/lambda_log_formatter.rb
|
46
|
+
(FORMAT % metadata.merge({msg: msg2str(msg)})).encode!("UTF-8")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# Copyright 2024 Block, Inc.
|
2
|
+
#
|
3
|
+
# Use of this source code is governed by an MIT-style
|
4
|
+
# license that can be found in the LICENSE file or at
|
5
|
+
# https://opensource.org/licenses/MIT.
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
require "elastic_graph/support/monotonic_clock"
|
10
|
+
|
11
|
+
module ElasticGraph
|
12
|
+
module LambdaSupport
|
13
|
+
# Mixin that can be used to define a lambda function, with common cross-cutting concerns
|
14
|
+
# handled automatically for you:
|
15
|
+
#
|
16
|
+
# - The amount of time it takes to boot the lambda is logged.
|
17
|
+
# - An error handling hook is provided which applies both to boot-time logic and request handling.
|
18
|
+
#
|
19
|
+
# It is designed to be prepending onto a class, like so:
|
20
|
+
#
|
21
|
+
# class DoSomething
|
22
|
+
# prepend LambdaFunction
|
23
|
+
#
|
24
|
+
# def initialize
|
25
|
+
# require 'my_application'
|
26
|
+
# @application = MyApplication.new(ENV[...])
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# def handle_request(event:, context:)
|
30
|
+
# @application.handle_request(event: event, context: context)
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# Using `prepend` is necessary so that it can wrap `initialize` and `handle_request` with error handling.
|
35
|
+
# It is recommended that `require`s be put in `initialize` instead of at the top of the lambda function
|
36
|
+
# file so that the error handler can handle any errors that happen while loading dependencies.
|
37
|
+
#
|
38
|
+
# `handle_exceptions` can also be overridden in order to provide error handling.
|
39
|
+
module LambdaFunction
|
40
|
+
def initialize(output: $stdout, monotonic_clock: Support::MonotonicClock.new)
|
41
|
+
handle_exceptions do
|
42
|
+
log_duration(output, monotonic_clock, "Booting the lambda function") do
|
43
|
+
super()
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def handle_request(event:, context:)
|
49
|
+
handle_exceptions { super }
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
# By default we just allow exceptions to bubble up. This is provided so that there is an exception handling hook that can be overridden.
|
55
|
+
def handle_exceptions
|
56
|
+
yield
|
57
|
+
end
|
58
|
+
|
59
|
+
def log_duration(output, monotonic_clock, description)
|
60
|
+
start_ms = monotonic_clock.now_in_ms
|
61
|
+
yield
|
62
|
+
stop_ms = monotonic_clock.now_in_ms
|
63
|
+
duration_ms = stop_ms - start_ms
|
64
|
+
|
65
|
+
output.puts "#{description} took #{duration_ms} milliseconds."
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Copyright 2024 Block, Inc.
|
2
|
+
#
|
3
|
+
# Use of this source code is governed by an MIT-style
|
4
|
+
# license that can be found in the LICENSE file or at
|
5
|
+
# https://opensource.org/licenses/MIT.
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
require "elastic_graph/lambda_support/json_aware_lambda_log_formatter"
|
10
|
+
require "faraday_middleware/aws_sigv4"
|
11
|
+
require "json"
|
12
|
+
|
13
|
+
module ElasticGraph
|
14
|
+
module LambdaSupport
|
15
|
+
# Helper method for building ElasticGraph components from our lambda ENV vars.
|
16
|
+
# `klass` is expected to be `ElasticGraph::Admin`, `ElasticGraph::GraphQL`, or `ElasticGraph::Indexer`.
|
17
|
+
#
|
18
|
+
# This is meant to only deal with ENV vars and config that are common across all ElasticGraph
|
19
|
+
# components (e.g. logging and OpenSearch clients). ENV vars that are specific to one component
|
20
|
+
# should be handled elsewhere. This accepts a block which can further customize configuration as
|
21
|
+
# needed.
|
22
|
+
def self.build_from_env(klass)
|
23
|
+
klass.from_yaml_file(
|
24
|
+
ENV.fetch("ELASTICGRAPH_YAML_CONFIG"),
|
25
|
+
datastore_client_customization_block: ->(faraday) { configure_datastore_client(faraday) }
|
26
|
+
) do |settings|
|
27
|
+
settings = settings.merge(
|
28
|
+
"logger" => override_logger_config(settings.fetch("logger")),
|
29
|
+
"datastore" => override_datastore_config(settings.fetch("datastore"))
|
30
|
+
)
|
31
|
+
|
32
|
+
settings = yield(settings) if block_given?
|
33
|
+
settings
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def self.override_datastore_config(datastore_config)
|
40
|
+
env_urls_by_cluster = ::JSON.parse(ENV.fetch("OPENSEARCH_CLUSTER_URLS"))
|
41
|
+
file_settings_by_cluster = datastore_config.fetch("clusters").transform_values { |v| v["settings"] }
|
42
|
+
|
43
|
+
datastore_config.merge(
|
44
|
+
"clusters" => env_urls_by_cluster.to_h do |cluster_name, url|
|
45
|
+
cluster_def = {
|
46
|
+
"url" => url,
|
47
|
+
"backend" => "opensearch",
|
48
|
+
"settings" => file_settings_by_cluster[cluster_name] || {}
|
49
|
+
}
|
50
|
+
|
51
|
+
[cluster_name, cluster_def]
|
52
|
+
end
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.override_logger_config(logger_config)
|
57
|
+
logger_config.merge({
|
58
|
+
"level" => ENV["ELASTICGRAPH_LOG_LEVEL"],
|
59
|
+
"formatter" => JSONAwareLambdaLogFormatter.name
|
60
|
+
}.compact)
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.configure_datastore_client(faraday)
|
64
|
+
faraday.request :aws_sigv4,
|
65
|
+
service: "es",
|
66
|
+
region: ENV.fetch("AWS_REGION"), # assumes the lambda and OpenSearch cluster live in the same region.
|
67
|
+
access_key_id: ENV.fetch("AWS_ACCESS_KEY_ID"),
|
68
|
+
secret_access_key: ENV.fetch("AWS_SECRET_ACCESS_KEY"),
|
69
|
+
session_token: ENV["AWS_SESSION_TOKEN"] # optional
|
70
|
+
end
|
71
|
+
|
72
|
+
private_class_method :override_datastore_config, :override_logger_config, :configure_datastore_client
|
73
|
+
end
|
74
|
+
end
|
metadata
ADDED
@@ -0,0 +1,348 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: elasticgraph-lambda_support
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.18.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Myron Marston
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-08-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rubocop-factory_bot
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.26'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.26'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubocop-rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop-rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: standard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.39.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.39.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: steep
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.7'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.7'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coderay
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: flatware-rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.3.2
|
104
|
+
- - "<"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '3.0'
|
107
|
+
type: :development
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 2.3.2
|
114
|
+
- - "<"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '3.0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rspec
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3.13'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.13'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: super_diff
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 0.12.1
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 0.12.1
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: simplecov
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0.22'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0.22'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: simplecov-console
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 0.9.1
|
166
|
+
- - "<"
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '1.0'
|
169
|
+
type: :development
|
170
|
+
prerelease: false
|
171
|
+
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: 0.9.1
|
176
|
+
- - "<"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '1.0'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: aws_lambda_ric
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 2.0.0
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 2.0.0
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: elasticgraph-opensearch
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - '='
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 0.18.0.0
|
200
|
+
type: :runtime
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - '='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 0.18.0.0
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: faraday_middleware-aws-sigv4
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - "~>"
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '1.0'
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '1.0'
|
221
|
+
- !ruby/object:Gem::Dependency
|
222
|
+
name: logger
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - "<"
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: 1.6.0
|
228
|
+
type: :runtime
|
229
|
+
prerelease: false
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - "<"
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 1.6.0
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: elasticgraph-admin
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - '='
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: 0.18.0.0
|
242
|
+
type: :development
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - '='
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: 0.18.0.0
|
249
|
+
- !ruby/object:Gem::Dependency
|
250
|
+
name: elasticgraph-graphql
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - '='
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: 0.18.0.0
|
256
|
+
type: :development
|
257
|
+
prerelease: false
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - '='
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 0.18.0.0
|
263
|
+
- !ruby/object:Gem::Dependency
|
264
|
+
name: elasticgraph-indexer
|
265
|
+
requirement: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - '='
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: 0.18.0.0
|
270
|
+
type: :development
|
271
|
+
prerelease: false
|
272
|
+
version_requirements: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - '='
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: 0.18.0.0
|
277
|
+
- !ruby/object:Gem::Dependency
|
278
|
+
name: elasticgraph-indexer_autoscaler_lambda
|
279
|
+
requirement: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - '='
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: 0.18.0.0
|
284
|
+
type: :development
|
285
|
+
prerelease: false
|
286
|
+
version_requirements: !ruby/object:Gem::Requirement
|
287
|
+
requirements:
|
288
|
+
- - '='
|
289
|
+
- !ruby/object:Gem::Version
|
290
|
+
version: 0.18.0.0
|
291
|
+
- !ruby/object:Gem::Dependency
|
292
|
+
name: httpx
|
293
|
+
requirement: !ruby/object:Gem::Requirement
|
294
|
+
requirements:
|
295
|
+
- - ">="
|
296
|
+
- !ruby/object:Gem::Version
|
297
|
+
version: 1.2.6
|
298
|
+
- - "<"
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: '2.0'
|
301
|
+
type: :development
|
302
|
+
prerelease: false
|
303
|
+
version_requirements: !ruby/object:Gem::Requirement
|
304
|
+
requirements:
|
305
|
+
- - ">="
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: 1.2.6
|
308
|
+
- - "<"
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
version: '2.0'
|
311
|
+
description:
|
312
|
+
email:
|
313
|
+
- myron@squareup.com
|
314
|
+
executables: []
|
315
|
+
extensions: []
|
316
|
+
extra_rdoc_files: []
|
317
|
+
files:
|
318
|
+
- LICENSE.txt
|
319
|
+
- README.md
|
320
|
+
- elasticgraph-lambda_support.gemspec
|
321
|
+
- lib/elastic_graph/lambda_support.rb
|
322
|
+
- lib/elastic_graph/lambda_support/json_aware_lambda_log_formatter.rb
|
323
|
+
- lib/elastic_graph/lambda_support/lambda_function.rb
|
324
|
+
homepage:
|
325
|
+
licenses:
|
326
|
+
- MIT
|
327
|
+
metadata:
|
328
|
+
gem_category: lambda
|
329
|
+
post_install_message:
|
330
|
+
rdoc_options: []
|
331
|
+
require_paths:
|
332
|
+
- lib
|
333
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
334
|
+
requirements:
|
335
|
+
- - "~>"
|
336
|
+
- !ruby/object:Gem::Version
|
337
|
+
version: '3.2'
|
338
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
339
|
+
requirements:
|
340
|
+
- - ">="
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
version: '0'
|
343
|
+
requirements: []
|
344
|
+
rubygems_version: 3.5.9
|
345
|
+
signing_key:
|
346
|
+
specification_version: 4
|
347
|
+
summary: ElasticGraph gem that supports running ElasticGraph using AWS Lambda.
|
348
|
+
test_files: []
|