logstash-input-s3 3.2.0 → 3.3.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 +4 -0
- data/docs/index.asciidoc +56 -3
- data/lib/logstash/inputs/s3.rb +4 -1
- data/logstash-input-s3.gemspec +2 -2
- data/spec/inputs/s3_spec.rb +33 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b3da5d60d7cc955dc088b8373efb14fa0d4b8318ba689b102726f92b8f947c
|
4
|
+
data.tar.gz: 3ed4bb7fc75bb4ef6f173a90eb9a6ff2788ef517c72c88b814dd70ae72879ab3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b18302b15ea951230da913422c462a8ac70d61e17030c8f8273145d618ad41317b8b4c87f12d986dc979ea02fed8780594511bbe3669c4d8de0982b8f722fc76
|
7
|
+
data.tar.gz: e82da29add08a72dc8ba4ed2d0a32c551d85b57fadb8fbb7e929a5e8028b8f821ec5a358535a89882d33cedd16c308cf9a9137938c1cf11bbe9e176a92e34823
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 3.3.0
|
2
|
+
- Add documentation for endpoint, role_arn and role_session_name #142
|
3
|
+
- Add support for additional_settings option #141
|
4
|
+
|
1
5
|
## 3.2.0
|
2
6
|
- Add support for auto-detecting gzip files with `.gzip` extension, in addition to existing support for `*.gz`
|
3
7
|
- Improve performance of gzip decoding by 10x by using Java's Zlib
|
data/docs/index.asciidoc
CHANGED
@@ -34,17 +34,21 @@ This plugin supports the following configuration options plus the <<plugins-{typ
|
|
34
34
|
|=======================================================================
|
35
35
|
|Setting |Input type|Required
|
36
36
|
| <<plugins-{type}s-{plugin}-access_key_id>> |<<string,string>>|No
|
37
|
+
| <<plugins-{type}s-{plugin}-additional_settings>> |<<hash,hash>>|No
|
37
38
|
| <<plugins-{type}s-{plugin}-aws_credentials_file>> |<<string,string>>|No
|
38
39
|
| <<plugins-{type}s-{plugin}-backup_add_prefix>> |<<string,string>>|No
|
39
40
|
| <<plugins-{type}s-{plugin}-backup_to_bucket>> |<<string,string>>|No
|
40
41
|
| <<plugins-{type}s-{plugin}-backup_to_dir>> |<<string,string>>|No
|
41
42
|
| <<plugins-{type}s-{plugin}-bucket>> |<<string,string>>|Yes
|
42
43
|
| <<plugins-{type}s-{plugin}-delete>> |<<boolean,boolean>>|No
|
44
|
+
| <<plugins-{type}s-{plugin}-endpoint>> |<<string,string>>|No
|
43
45
|
| <<plugins-{type}s-{plugin}-exclude_pattern>> |<<string,string>>|No
|
44
46
|
| <<plugins-{type}s-{plugin}-interval>> |<<number,number>>|No
|
45
47
|
| <<plugins-{type}s-{plugin}-prefix>> |<<string,string>>|No
|
46
48
|
| <<plugins-{type}s-{plugin}-proxy_uri>> |<<string,string>>|No
|
47
|
-
| <<plugins-{type}s-{plugin}-region>> |<<string,string
|
49
|
+
| <<plugins-{type}s-{plugin}-region>> |<<string,string>>|No
|
50
|
+
| <<plugins-{type}s-{plugin}-role_arn>> |<<string,string>>|No
|
51
|
+
| <<plugins-{type}s-{plugin}-role_session_name>> |<<string,string>>|No
|
48
52
|
| <<plugins-{type}s-{plugin}-secret_access_key>> |<<string,string>>|No
|
49
53
|
| <<plugins-{type}s-{plugin}-session_token>> |<<string,string>>|No
|
50
54
|
| <<plugins-{type}s-{plugin}-sincedb_path>> |<<string,string>>|No
|
@@ -131,6 +135,16 @@ The name of the S3 bucket.
|
|
131
135
|
|
132
136
|
Whether to delete processed files from the original bucket.
|
133
137
|
|
138
|
+
[id="plugins-{type}s-{plugin}-endpoint"]
|
139
|
+
===== `endpoint`
|
140
|
+
|
141
|
+
* Value type is <<string,string>>
|
142
|
+
* There is no default value for this setting.
|
143
|
+
|
144
|
+
The endpoint to connect to. By default it is constructed using the value of `region`.
|
145
|
+
This is useful when connecting to S3 compatible services, but beware that these aren't
|
146
|
+
guaranteed to work correctly with the AWS SDK.
|
147
|
+
|
134
148
|
[id="plugins-{type}s-{plugin}-exclude_pattern"]
|
135
149
|
===== `exclude_pattern`
|
136
150
|
|
@@ -139,6 +153,28 @@ Whether to delete processed files from the original bucket.
|
|
139
153
|
|
140
154
|
Ruby style regexp of keys to exclude from the bucket
|
141
155
|
|
156
|
+
[id="plugins-{type}s-{plugin}-additional_settings"]
|
157
|
+
===== `additional_settings`
|
158
|
+
|
159
|
+
* Value type is <<hash,hash>>
|
160
|
+
* Default value is `{}`
|
161
|
+
|
162
|
+
Key-value pairs of settings and corresponding values used to parametrize
|
163
|
+
the connection to s3. See full list in https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html[the AWS SDK documentation]. Example:
|
164
|
+
|
165
|
+
[source,ruby]
|
166
|
+
input {
|
167
|
+
s3 {
|
168
|
+
"access_key_id" => "1234",
|
169
|
+
"secret_access_key" => "secret",
|
170
|
+
"bucket" => "logstash-test",
|
171
|
+
"additional_settings" => {
|
172
|
+
"force_path_style => true,
|
173
|
+
"follow_redirects" => false
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
142
178
|
[id="plugins-{type}s-{plugin}-interval"]
|
143
179
|
===== `interval`
|
144
180
|
|
@@ -167,11 +203,29 @@ URI to proxy server if required
|
|
167
203
|
[id="plugins-{type}s-{plugin}-region"]
|
168
204
|
===== `region`
|
169
205
|
|
170
|
-
* Value
|
206
|
+
* Value type is <<string,string>>
|
171
207
|
* Default value is `"us-east-1"`
|
172
208
|
|
173
209
|
The AWS Region
|
174
210
|
|
211
|
+
[id="plugins-{type}s-{plugin}-role_arn"]
|
212
|
+
===== `role_arn`
|
213
|
+
|
214
|
+
* Value type is <<string,string>>
|
215
|
+
* There is no default value for this setting.
|
216
|
+
|
217
|
+
The AWS IAM Role to assume, if any.
|
218
|
+
This is used to generate temporary credentials, typically for cross-account access.
|
219
|
+
See the https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html[AssumeRole API documentation] for more information.
|
220
|
+
|
221
|
+
[id="plugins-{type}s-{plugin}-role_session_name"]
|
222
|
+
===== `role_session_name`
|
223
|
+
|
224
|
+
* Value type is <<string,string>>
|
225
|
+
* Default value is `"logstash"`
|
226
|
+
|
227
|
+
Session name to use when assuming an IAM role.
|
228
|
+
|
175
229
|
[id="plugins-{type}s-{plugin}-secret_access_key"]
|
176
230
|
===== `secret_access_key`
|
177
231
|
|
@@ -207,7 +261,6 @@ If specified, this setting must be a filename path and not just a directory.
|
|
207
261
|
* Default value is `"/tmp/logstash"`
|
208
262
|
|
209
263
|
Set the directory where logstash will store the tmp files before processing them.
|
210
|
-
default to the current OS temporary directory in linux /tmp/logstash
|
211
264
|
|
212
265
|
|
213
266
|
|
data/lib/logstash/inputs/s3.rb
CHANGED
@@ -35,6 +35,8 @@ class LogStash::Inputs::S3 < LogStash::Inputs::Base
|
|
35
35
|
# If specified, the prefix of filenames in the bucket must match (not a regexp)
|
36
36
|
config :prefix, :validate => :string, :default => nil
|
37
37
|
|
38
|
+
config :additional_settings, :validate => :hash, :default => {}
|
39
|
+
|
38
40
|
# The path to use for writing state. The state stored by this plugin is
|
39
41
|
# a memory of files already processed by this plugin.
|
40
42
|
#
|
@@ -386,7 +388,8 @@ class LogStash::Inputs::S3 < LogStash::Inputs::Base
|
|
386
388
|
|
387
389
|
private
|
388
390
|
def get_s3object
|
389
|
-
|
391
|
+
options = @additional_settings.merge(aws_options_hash || {})
|
392
|
+
s3 = Aws::S3::Resource.new(options)
|
390
393
|
end
|
391
394
|
|
392
395
|
private
|
data/logstash-input-s3.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-s3'
|
4
|
-
s.version = '3.
|
4
|
+
s.version = '3.3.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Streams events from files in a S3 bucket"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
23
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 2.1.12", "<= 2.99"
|
24
|
-
s.add_runtime_dependency 'logstash-mixin-aws'
|
24
|
+
s.add_runtime_dependency 'logstash-mixin-aws', '>= 4.3.0'
|
25
25
|
s.add_runtime_dependency 'stud', '~> 0.0.18'
|
26
26
|
# s.add_runtime_dependency 'aws-sdk-resources', '>= 2.0.33'
|
27
27
|
s.add_development_dependency 'logstash-devutils'
|
data/spec/inputs/s3_spec.rb
CHANGED
@@ -76,6 +76,39 @@ describe LogStash::Inputs::S3 do
|
|
76
76
|
subject.send(:get_s3object)
|
77
77
|
end
|
78
78
|
end
|
79
|
+
|
80
|
+
describe "additional_settings" do
|
81
|
+
context 'when force_path_style is set' do
|
82
|
+
let(:settings) {
|
83
|
+
{
|
84
|
+
"additional_settings" => { "force_path_style" => true },
|
85
|
+
"bucket" => "logstash-test",
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
it 'should instantiate AWS::S3 clients with force_path_style set' do
|
90
|
+
expect(Aws::S3::Resource).to receive(:new).with({
|
91
|
+
:region => subject.region,
|
92
|
+
"force_path_style" => true
|
93
|
+
}).and_call_original
|
94
|
+
|
95
|
+
subject.send(:get_s3object)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context 'when an unknown setting is given' do
|
100
|
+
let(:settings) {
|
101
|
+
{
|
102
|
+
"additional_settings" => { "this_setting_doesnt_exist" => true },
|
103
|
+
"bucket" => "logstash-test",
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
it 'should raise an error' do
|
108
|
+
expect { subject.send(:get_s3object) }.to raise_error(ArgumentError)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
79
112
|
end
|
80
113
|
|
81
114
|
describe "#list_new_files" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
requirements:
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
38
|
+
version: 4.3.0
|
39
39
|
name: logstash-mixin-aws
|
40
40
|
prerelease: false
|
41
41
|
type: :runtime
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
46
|
+
version: 4.3.0
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|