logstash-input-sqs 3.0.2 → 3.0.3

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
  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.