logstash-input-s3 3.2.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|