logstash-input-sqs 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8b647cdf23498e03578429d1480b20af305b9f1
4
- data.tar.gz: 6dd56f7d7df34f744d0305f1dcc2b9f90138b251
3
+ metadata.gz: 14851d6496ebf90774a2d559f8a82c3cccfe21e1
4
+ data.tar.gz: d734170d3d4116663bb445bdb4d830ecb1683a7c
5
5
  SHA512:
6
- metadata.gz: 8f7738bcaa0c1b477f38e83653cbbfdfb685a32aa05048b02abfb19f1dfd5c1ce1e2e4cb6d7f1eb471edff9e727908e8fdba734b30972d9b297bb5607fefb539
7
- data.tar.gz: 29d724a9098d1a1be4f4a082beee61acd6eb949980978af7350a8751bbd270b5780ae9b6112abcd4545cd456396115f673e24548aff47f969bd23b03160dff03
6
+ metadata.gz: 84b5ecc02db5cd15a409923df221578cd193e5631932c6f158d47a28ad0bd1b20ce490fb3dea42ebd0f6b03c902d406d348b46311e3009ce4fd86b04a6fc3a51
7
+ data.tar.gz: 2c968877567c0eb5f0f67e630f1348683a8f01e60a9ca5a1fae9d07a9f70a5c5f59b03aed3b58a275c4dc5442a04854a0571ce20766abf1063a3078b2ff749a6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 3.0.3
2
+ - Monkey-patch the AWS-SDK to prevent "uninitialized constant" errors.
3
+
1
4
  ## 3.0.2
2
5
  - Relax constraint on logstash-core-plugin-api to >= 1.60 <= 2.99
3
6
 
data/CONTRIBUTORS CHANGED
@@ -5,6 +5,7 @@ Contributors:
5
5
  * Aaron Broad (AaronTheApe)
6
6
  * Colin Surprenant (colinsurprenant)
7
7
  * Jordan Sissel (jordansissel)
8
+ * Joshua Spence (joshuaspence)
8
9
  * Pier-Hugues Pellerin (ph)
9
10
  * Richard Pijnenburg (electrical)
10
11
  * Sean Laurent (organicveggie)
@@ -0,0 +1,219 @@
1
+ :plugin: sqs
2
+ :type: input
3
+
4
+ ///////////////////////////////////////////
5
+ START - GENERATED VARIABLES, DO NOT EDIT!
6
+ ///////////////////////////////////////////
7
+ :version: %VERSION%
8
+ :release_date: %RELEASE_DATE%
9
+ :changelog_url: %CHANGELOG_URL%
10
+ :include_path: ../../../logstash/docs/include
11
+ ///////////////////////////////////////////
12
+ END - GENERATED VARIABLES, DO NOT EDIT!
13
+ ///////////////////////////////////////////
14
+
15
+ [id="plugins-{type}-{plugin}"]
16
+
17
+ === Sqs
18
+
19
+ include::{include_path}/plugin_header.asciidoc[]
20
+
21
+ ==== Description
22
+
23
+
24
+ Pull events from an Amazon Web Services Simple Queue Service (SQS) queue.
25
+
26
+ SQS is a simple, scalable queue system that is part of the
27
+ Amazon Web Services suite of tools.
28
+
29
+ Although SQS is similar to other queuing systems like AMQP, it
30
+ uses a custom API and requires that you have an AWS account.
31
+ See http://aws.amazon.com/sqs/ for more details on how SQS works,
32
+ what the pricing schedule looks like and how to setup a queue.
33
+
34
+ To use this plugin, you *must*:
35
+
36
+ * Have an AWS account
37
+ * Setup an SQS queue
38
+ * Create an identify that has access to consume messages from the queue.
39
+
40
+ The "consumer" identity must have the following permissions on the queue:
41
+
42
+ * `sqs:ChangeMessageVisibility`
43
+ * `sqs:ChangeMessageVisibilityBatch`
44
+ * `sqs:DeleteMessage`
45
+ * `sqs:DeleteMessageBatch`
46
+ * `sqs:GetQueueAttributes`
47
+ * `sqs:GetQueueUrl`
48
+ * `sqs:ListQueues`
49
+ * `sqs:ReceiveMessage`
50
+
51
+ Typically, you should setup an IAM policy, create a user and apply the IAM policy to the user.
52
+ A sample policy is as follows:
53
+ [source,json]
54
+ {
55
+ "Statement": [
56
+ {
57
+ "Action": [
58
+ "sqs:ChangeMessageVisibility",
59
+ "sqs:ChangeMessageVisibilityBatch",
60
+ "sqs:GetQueueAttributes",
61
+ "sqs:GetQueueUrl",
62
+ "sqs:ListQueues",
63
+ "sqs:SendMessage",
64
+ "sqs:SendMessageBatch"
65
+ ],
66
+ "Effect": "Allow",
67
+ "Resource": [
68
+ "arn:aws:sqs:us-east-1:123456789012:Logstash"
69
+ ]
70
+ }
71
+ ]
72
+ }
73
+
74
+ See http://aws.amazon.com/iam/ for more details on setting up AWS identities.
75
+
76
+
77
+ [id="plugins-{type}s-{plugin}-options"]
78
+ ==== Sqs Input Configuration Options
79
+
80
+ This plugin supports the following configuration options plus the <<plugins-{type}s-common-options>> described later.
81
+
82
+ [cols="<,<,<",options="header",]
83
+ |=======================================================================
84
+ |Setting |Input type|Required
85
+ | <<plugins-{type}s-{plugin}-access_key_id>> |<<string,string>>|No
86
+ | <<plugins-{type}s-{plugin}-aws_credentials_file>> |<<string,string>>|No
87
+ | <<plugins-{type}s-{plugin}-id_field>> |<<string,string>>|No
88
+ | <<plugins-{type}s-{plugin}-md5_field>> |<<string,string>>|No
89
+ | <<plugins-{type}s-{plugin}-polling_frequency>> |<<number,number>>|No
90
+ | <<plugins-{type}s-{plugin}-proxy_uri>> |<<string,string>>|No
91
+ | <<plugins-{type}s-{plugin}-queue>> |<<string,string>>|Yes
92
+ | <<plugins-{type}s-{plugin}-region>> |<<string,string>>, one of `["us-east-1", "us-east-2", "us-west-1", "us-west-2", "eu-central-1", "eu-west-1", "eu-west-2", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "ap-northeast-2", "sa-east-1", "us-gov-west-1", "cn-north-1", "ap-south-1", "ca-central-1"]`|No
93
+ | <<plugins-{type}s-{plugin}-secret_access_key>> |<<string,string>>|No
94
+ | <<plugins-{type}s-{plugin}-sent_timestamp_field>> |<<string,string>>|No
95
+ | <<plugins-{type}s-{plugin}-session_token>> |<<string,string>>|No
96
+ | <<plugins-{type}s-{plugin}-threads>> |<<number,number>>|No
97
+ |=======================================================================
98
+
99
+ Also see <<plugins-{type}s-common-options>> for a list of options supported by all
100
+ input plugins.
101
+
102
+ &nbsp;
103
+
104
+ [id="plugins-{type}s-{plugin}-access_key_id"]
105
+ ===== `access_key_id`
106
+
107
+ * Value type is <<string,string>>
108
+ * There is no default value for this setting.
109
+
110
+ This plugin uses the AWS SDK and supports several ways to get credentials, which will be tried in this order:
111
+
112
+ 1. Static configuration, using `access_key_id` and `secret_access_key` params in logstash plugin config
113
+ 2. External credentials file specified by `aws_credentials_file`
114
+ 3. Environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
115
+ 4. Environment variables `AMAZON_ACCESS_KEY_ID` and `AMAZON_SECRET_ACCESS_KEY`
116
+ 5. IAM Instance Profile (available when running inside EC2)
117
+
118
+ [id="plugins-{type}s-{plugin}-aws_credentials_file"]
119
+ ===== `aws_credentials_file`
120
+
121
+ * Value type is <<string,string>>
122
+ * There is no default value for this setting.
123
+
124
+ Path to YAML file containing a hash of AWS credentials.
125
+ This file will only be loaded if `access_key_id` and
126
+ `secret_access_key` aren't set. The contents of the
127
+ file should look like this:
128
+
129
+ [source,ruby]
130
+ ----------------------------------
131
+ :access_key_id: "12345"
132
+ :secret_access_key: "54321"
133
+ ----------------------------------
134
+
135
+
136
+ [id="plugins-{type}s-{plugin}-id_field"]
137
+ ===== `id_field`
138
+
139
+ * Value type is <<string,string>>
140
+ * There is no default value for this setting.
141
+
142
+ Name of the event field in which to store the SQS message ID
143
+
144
+ [id="plugins-{type}s-{plugin}-md5_field"]
145
+ ===== `md5_field`
146
+
147
+ * Value type is <<string,string>>
148
+ * There is no default value for this setting.
149
+
150
+ Name of the event field in which to store the SQS message MD5 checksum
151
+
152
+ [id="plugins-{type}s-{plugin}-polling_frequency"]
153
+ ===== `polling_frequency`
154
+
155
+ * Value type is <<number,number>>
156
+ * Default value is `20`
157
+
158
+ Polling frequency, default is 20 seconds
159
+
160
+ [id="plugins-{type}s-{plugin}-proxy_uri"]
161
+ ===== `proxy_uri`
162
+
163
+ * Value type is <<string,string>>
164
+ * There is no default value for this setting.
165
+
166
+ URI to proxy server if required
167
+
168
+ [id="plugins-{type}s-{plugin}-queue"]
169
+ ===== `queue`
170
+
171
+ * This is a required setting.
172
+ * Value type is <<string,string>>
173
+ * There is no default value for this setting.
174
+
175
+ Name of the SQS Queue name to pull messages from. Note that this is just the name of the queue, not the URL or ARN.
176
+
177
+ [id="plugins-{type}s-{plugin}-region"]
178
+ ===== `region`
179
+
180
+ * Value can be any of: `us-east-1`, `us-east-2`, `us-west-1`, `us-west-2`, `eu-central-1`, `eu-west-1`, `eu-west-2`, `ap-southeast-1`, `ap-southeast-2`, `ap-northeast-1`, `ap-northeast-2`, `sa-east-1`, `us-gov-west-1`, `cn-north-1`, `ap-south-1`, `ca-central-1`
181
+ * Default value is `"us-east-1"`
182
+
183
+ The AWS Region
184
+
185
+ [id="plugins-{type}s-{plugin}-secret_access_key"]
186
+ ===== `secret_access_key`
187
+
188
+ * Value type is <<string,string>>
189
+ * There is no default value for this setting.
190
+
191
+ The AWS Secret Access Key
192
+
193
+ [id="plugins-{type}s-{plugin}-sent_timestamp_field"]
194
+ ===== `sent_timestamp_field`
195
+
196
+ * Value type is <<string,string>>
197
+ * There is no default value for this setting.
198
+
199
+ Name of the event field in which to store the SQS message Sent Timestamp
200
+
201
+ [id="plugins-{type}s-{plugin}-session_token"]
202
+ ===== `session_token`
203
+
204
+ * Value type is <<string,string>>
205
+ * There is no default value for this setting.
206
+
207
+ The AWS Session token for temporary credential
208
+
209
+ [id="plugins-{type}s-{plugin}-threads"]
210
+ ===== `threads`
211
+
212
+ * Value type is <<number,number>>
213
+ * Default value is `1`
214
+
215
+
216
+
217
+
218
+
219
+ include::{include_path}/{type}.asciidoc[]
@@ -0,0 +1,21 @@
1
+ # This patch was stolen from logstash-plugins/logstash-output-sqs#20.
2
+ #
3
+ # This patch is a workaround for a JRuby issue which has been fixed in JRuby
4
+ # 9000, but not in JRuby 1.7. See https://github.com/jruby/jruby/issues/3645
5
+ # and https://github.com/jruby/jruby/issues/3920. This is necessary because the
6
+ # `aws-sdk` is doing tricky name discovery to generate the correct error class.
7
+ #
8
+ # As per https://github.com/aws/aws-sdk-ruby/issues/1301#issuecomment-261115960,
9
+ # this patch may be short-lived anyway.
10
+ require 'aws-sdk'
11
+
12
+ begin
13
+ old_stderr = $stderr
14
+ $stderr = StringIO.new
15
+
16
+ module Aws
17
+ const_set(:SQS, Aws::SQS)
18
+ end
19
+ ensure
20
+ $stderr = old_stderr
21
+ end
@@ -5,6 +5,13 @@ require "logstash/namespace"
5
5
  require "logstash/timestamp"
6
6
  require "logstash/plugin_mixins/aws_config"
7
7
  require "logstash/errors"
8
+ require 'logstash/inputs/sqs/patch'
9
+
10
+ # Forcibly load all modules marked to be lazily loaded.
11
+ #
12
+ # It is recommended that this is called prior to launching threads. See
13
+ # https://aws.amazon.com/blogs/developer/threading-with-the-aws-sdk-for-ruby/.
14
+ Aws.eager_autoload!
8
15
 
9
16
  # Pull events from an Amazon Web Services Simple Queue Service (SQS) queue.
10
17
  #
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-sqs'
3
- s.version = '3.0.2'
3
+ s.version = '3.0.3'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Pull events from an Amazon Web Services Simple Queue Service (SQS) queue."
6
6
  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"
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.require_paths = ["lib"]
11
11
 
12
12
  # Files
13
- s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
13
+ s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
14
14
 
15
15
  # Tests
16
16
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
@@ -1,10 +1,10 @@
1
1
  # encoding: utf-8
2
+ require "spec_helper"
2
3
  require "logstash/inputs/sqs"
3
4
  require "logstash/errors"
4
5
  require "logstash/event"
5
6
  require "logstash/json"
6
7
  require "aws-sdk"
7
- require "spec_helper"
8
8
  require "ostruct"
9
9
 
10
10
  describe LogStash::Inputs::SQS do
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
+ require "spec_helper"
2
3
  require "logstash/inputs/sqs"
3
4
  require "logstash/event"
4
5
  require "logstash/json"
5
6
  require "aws-sdk"
6
- require "spec_helper"
7
7
  require_relative "../support/helpers"
8
8
  require "thread"
9
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-sqs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-14 00:00:00.000000000 Z
11
+ date: 2017-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -84,7 +84,9 @@ files:
84
84
  - LICENSE
85
85
  - NOTICE.TXT
86
86
  - README.md
87
+ - docs/index.asciidoc
87
88
  - lib/logstash/inputs/sqs.rb
89
+ - lib/logstash/inputs/sqs/patch.rb
88
90
  - logstash-input-sqs.gemspec
89
91
  - spec/inputs/sqs_spec.rb
90
92
  - spec/integration/sqs_spec.rb
@@ -112,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
114
  version: '0'
113
115
  requirements: []
114
116
  rubyforge_project:
115
- rubygems_version: 2.6.3
117
+ rubygems_version: 2.4.8
116
118
  signing_key:
117
119
  specification_version: 4
118
120
  summary: Pull events from an Amazon Web Services Simple Queue Service (SQS) queue.