fluent-plugin-aws-sqs 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.gitlab-ci.yml +73 -0
- data/Gemfile +4 -0
- data/README.md +0 -0
- data/Rakefile +7 -0
- data/VERSION +1 -0
- data/fluent-plugin-aws-sqs.gemspec +28 -0
- data/lib/fluent/plugin/in_sqs.rb +80 -0
- data/lib/fluent/plugin/version.rb +3 -0
- data/spec/lib/fluent/plugin/in_sqs_spec.rb +120 -0
- data/spec/spec_helper.rb +28 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2e0e807c91cfb9c16b261fbf2302ddd2537856f9eacaca6b5a17bea6c451f904
|
4
|
+
data.tar.gz: 702ca145ce473611c73ea372a810e8c35bdbdc319c95d80bc1ae1600bf71c4e9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b4f6aa63ee94baac86ac116378e9f795d3bc431234f92e5e989aa197e75dcea8d7ce58dc069016b9c028237fb5f57b93bc552df9e2eb8fab79c5f6cab13fbe18
|
7
|
+
data.tar.gz: 8b51ce8aa459d03962c2fef4ffffd7f31a7788d44a992bb033e99bf0f374c621d479b047504dfe85392c944676cbf51dcda80e6459dbc11905ac0388cdc5d6a2
|
data/.gitignore
ADDED
data/.gitlab-ci.yml
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
image: ruby:2.6.3
|
2
|
+
|
3
|
+
# Cache gems in between builds
|
4
|
+
cache:
|
5
|
+
key: ${CI_COMMIT_REF_SLUG}
|
6
|
+
paths:
|
7
|
+
- vendor/ruby
|
8
|
+
|
9
|
+
before_script:
|
10
|
+
- gem install bundler:2.0.2
|
11
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
12
|
+
|
13
|
+
stages:
|
14
|
+
- test
|
15
|
+
- release
|
16
|
+
|
17
|
+
variables:
|
18
|
+
DOCKER_TLS_CERTDIR: ""
|
19
|
+
|
20
|
+
unit-test:
|
21
|
+
tags:
|
22
|
+
- dcos-multi-runner
|
23
|
+
stage: test
|
24
|
+
script:
|
25
|
+
- bundle exec rake test
|
26
|
+
except:
|
27
|
+
- tags
|
28
|
+
|
29
|
+
.release: &release
|
30
|
+
tags:
|
31
|
+
- dcos-multi-runner
|
32
|
+
stage: release
|
33
|
+
before_script:
|
34
|
+
- echo "Setup ssh inside the runner.."
|
35
|
+
- git config --global user.email $GITLAB_USER_EMAIL
|
36
|
+
- git config --global user.name $GITLAB_USER_LOGIN
|
37
|
+
- 'which ssh-agent || ( apk --update add openssh-client )'
|
38
|
+
- eval $(ssh-agent -s)
|
39
|
+
- ssh-add <(echo "$SSH_PRIVATE_KEY")
|
40
|
+
- mkdir -p ~/.ssh
|
41
|
+
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
|
42
|
+
- echo "Clone the source code.."
|
43
|
+
- GIT_URL=$(echo $CI_PROJECT_URL | cut -d'/' -f3)
|
44
|
+
- git clone git@$GIT_URL:$CI_PROJECT_PATH.git
|
45
|
+
- cd $CI_PROJECT_NAME
|
46
|
+
- git reset --hard $CI_COMMIT_SHA
|
47
|
+
script:
|
48
|
+
- mkdir -p ~/.gem
|
49
|
+
- 'echo -e "---\n:rubygems_api_key: $GEM_HOST_API_KEY" > ~/.gem/credentials && echo "created gem credentials"'
|
50
|
+
- chmod 0600 ~/.gem/credentials
|
51
|
+
- gem install gem-release
|
52
|
+
- gem bump fluent-plugin-aws-sqs --version $TYPE --file ./lib/fluent/plugin/version.rb --commit --push --tag
|
53
|
+
- gem build fluent-plugin-aws-sqs.gemspec
|
54
|
+
- export VERSION=$(cat ./lib/fluent/plugin/version.rb | grep VERSION | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p' | sed 's/"$//')
|
55
|
+
- gem push fluent-plugin-aws-sqs-$VERSION.gem
|
56
|
+
when: manual
|
57
|
+
only:
|
58
|
+
- master
|
59
|
+
|
60
|
+
release:patch:
|
61
|
+
extends: .release
|
62
|
+
variables:
|
63
|
+
TYPE: patch
|
64
|
+
|
65
|
+
release:minor:
|
66
|
+
extends: .release
|
67
|
+
variables:
|
68
|
+
TYPE: minor
|
69
|
+
|
70
|
+
release:major:
|
71
|
+
extends: .release
|
72
|
+
variables:
|
73
|
+
TYPE: major
|
data/Gemfile
ADDED
data/README.md
ADDED
File without changes
|
data/Rakefile
ADDED
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
@@ -0,0 +1,28 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require ('./lib/fluent/plugin/version.rb')
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "fluent-plugin-aws-sqs"
|
8
|
+
spec.version = SQS::VERSION
|
9
|
+
|
10
|
+
spec.authors = ["Shai Moria", "Niv Lipetz", "Jacob Goldenberg"]
|
11
|
+
spec.email = ["shai.moria@zooz.com", "niv.lipetz@zooz.com", "jacob.goldenberg@zooz.com"]
|
12
|
+
spec.description = "Fluentd SQS plugin to read data from AWS SQS"
|
13
|
+
spec.summary = "Fluentd SQS plugin to read data from AWS SQS"
|
14
|
+
spec.homepage = "https://github.com/zooz/fluent-plugin-aws-sqs"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($\)
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
spec.license = "Apache-2.0"
|
19
|
+
|
20
|
+
spec.required_ruby_version = '>= 2.1'
|
21
|
+
|
22
|
+
spec.add_runtime_dependency "fluentd", ">= 0.14.0"
|
23
|
+
spec.add_runtime_dependency "aws-sdk-sqs", ">= 1.22.0"
|
24
|
+
spec.add_development_dependency "bundler"
|
25
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
26
|
+
spec.add_development_dependency "test-unit", ">= 3.1.0"
|
27
|
+
spec.add_development_dependency "test-unit-rr"
|
28
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'fluent/plugin/input'
|
2
|
+
require 'aws-sdk-sqs'
|
3
|
+
|
4
|
+
module Fluent::Plugin
|
5
|
+
class SQSInput < Input
|
6
|
+
Fluent::Plugin.register_input('sqs', self)
|
7
|
+
|
8
|
+
helpers :timer
|
9
|
+
|
10
|
+
config_param :aws_key_id, :string, default: nil, secret: true
|
11
|
+
config_param :aws_sec_key, :string, default: nil, secret: true
|
12
|
+
config_param :tag, :string
|
13
|
+
config_param :region, :string, default: 'ap-northeast-1'
|
14
|
+
config_param :sqs_url, :string, default: nil
|
15
|
+
config_param :receive_interval, :time, default: 0.1
|
16
|
+
config_param :max_number_of_messages, :integer, default: 10
|
17
|
+
config_param :wait_time_seconds, :integer, default: 10
|
18
|
+
config_param :visibility_timeout, :integer, default: nil
|
19
|
+
config_param :delete_message, :bool, default: false
|
20
|
+
config_param :stub_responses, :bool, default: false
|
21
|
+
|
22
|
+
def configure(conf)
|
23
|
+
super
|
24
|
+
|
25
|
+
Aws.config = {
|
26
|
+
access_key_id: @aws_key_id,
|
27
|
+
secret_access_key: @aws_sec_key,
|
28
|
+
region: @region
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
def start
|
33
|
+
super
|
34
|
+
|
35
|
+
timer_execute(:in_sqs_run_periodic_timer, @receive_interval, &method(:run))
|
36
|
+
end
|
37
|
+
|
38
|
+
def client
|
39
|
+
@client ||= Aws::SQS::Client.new(stub_responses: @stub_responses)
|
40
|
+
end
|
41
|
+
|
42
|
+
def queue
|
43
|
+
@queue ||= Aws::SQS::Resource.new(client: client).queue(@sqs_url)
|
44
|
+
end
|
45
|
+
|
46
|
+
def shutdown
|
47
|
+
super
|
48
|
+
end
|
49
|
+
|
50
|
+
def run
|
51
|
+
queue.receive_messages(
|
52
|
+
max_number_of_messages: @max_number_of_messages,
|
53
|
+
wait_time_seconds: @wait_time_seconds,
|
54
|
+
visibility_timeout: @visibility_timeout
|
55
|
+
).each do |message|
|
56
|
+
record = parse_message(message)
|
57
|
+
|
58
|
+
message.delete if @delete_message
|
59
|
+
|
60
|
+
router.emit(@tag, Fluent::Engine.now, record)
|
61
|
+
end
|
62
|
+
rescue
|
63
|
+
log.error 'failed to emit or receive', error: $ERROR_INFO.to_s, error_class: $ERROR_INFO.class.to_s
|
64
|
+
log.warn_backtrace $ERROR_INFO.backtrace
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def parse_message(message)
|
70
|
+
{
|
71
|
+
'body' => message.body.to_s,
|
72
|
+
'receipt_handle' => message.receipt_handle.to_s,
|
73
|
+
'message_id' => message.message_id.to_s,
|
74
|
+
'md5_of_body' => message.md5_of_body.to_s,
|
75
|
+
'queue_url' => message.queue_url.to_s,
|
76
|
+
'sender_id' => message.attributes['SenderId'].to_s
|
77
|
+
}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'fluent/plugin/in_sqs'
|
3
|
+
|
4
|
+
describe Fluent::Plugin::SQSInput do
|
5
|
+
let(:driver) do
|
6
|
+
Fluent::Test.setup
|
7
|
+
Fluent::Test::Driver::Input.new(Fluent::Plugin::SQSInput).configure(config)
|
8
|
+
end
|
9
|
+
subject { driver.instance }
|
10
|
+
|
11
|
+
describe '#configure' do
|
12
|
+
let(:config) do
|
13
|
+
%(
|
14
|
+
aws_key_id AWS_KEY_ID
|
15
|
+
aws_sec_key AWS_SEC_KEY
|
16
|
+
tag TAG
|
17
|
+
region REGION
|
18
|
+
sqs_url http://SQS_URL
|
19
|
+
receive_interval 1
|
20
|
+
max_number_of_messages 10
|
21
|
+
wait_time_seconds 10
|
22
|
+
visibility_timeout 1
|
23
|
+
delete_message true
|
24
|
+
stub_responses true
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'fluentd input configuration settings' do
|
29
|
+
it { expect(subject.aws_key_id).to eq('AWS_KEY_ID') }
|
30
|
+
it { expect(subject.aws_sec_key).to eq('AWS_SEC_KEY') }
|
31
|
+
it { expect(subject.tag).to eq('TAG') }
|
32
|
+
it { expect(subject.region).to eq('REGION') }
|
33
|
+
it { expect(subject.sqs_url).to eq('http://SQS_URL') }
|
34
|
+
it { expect(subject.receive_interval).to eq(1) }
|
35
|
+
it { expect(subject.max_number_of_messages).to eq(10) }
|
36
|
+
it { expect(subject.wait_time_seconds).to eq(10) }
|
37
|
+
it { expect(subject.visibility_timeout).to eq(1) }
|
38
|
+
it { expect(subject.delete_message).to eq(true) }
|
39
|
+
it { expect(subject.stub_responses).to eq(true) }
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'AWS configuration settings' do
|
43
|
+
subject { Aws.config }
|
44
|
+
|
45
|
+
before { driver.instance }
|
46
|
+
|
47
|
+
it { expect(subject[:access_key_id]).to eq('AWS_KEY_ID') }
|
48
|
+
it { expect(subject[:secret_access_key]).to eq('AWS_SEC_KEY') }
|
49
|
+
it { expect(subject[:region]).to eq('REGION') }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#run' do
|
54
|
+
let(:message_attributes) do
|
55
|
+
{
|
56
|
+
body: 'body',
|
57
|
+
receipt_handle: 'receipt_handle',
|
58
|
+
message_id: 'message_id',
|
59
|
+
md5_of_body: 'md5_of_body',
|
60
|
+
queue_url: 'queue_url',
|
61
|
+
attributes: { 'SenderId' => 'sender_id' }
|
62
|
+
}
|
63
|
+
end
|
64
|
+
let(:queue) { double(:queue, receive_messages: true) }
|
65
|
+
let(:message) { double(:message, **message_attributes.merge(delete: nil)) }
|
66
|
+
let(:messages) { [message] }
|
67
|
+
|
68
|
+
context 'with no delete messages param' do
|
69
|
+
let(:config) do
|
70
|
+
%(
|
71
|
+
tag TAG
|
72
|
+
max_number_of_messages 10
|
73
|
+
wait_time_seconds 10
|
74
|
+
visibility_timeout 1
|
75
|
+
delete_message false
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
before do
|
80
|
+
allow(subject).to receive(:queue) { queue }
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'parse through messages and emit it' do
|
84
|
+
expect(queue).to receive(:receive_messages)
|
85
|
+
.with(max_number_of_messages: 10, wait_time_seconds: 10, visibility_timeout: 1) { messages }
|
86
|
+
expect(subject).to receive(:parse_message).with(message) { message_attributes }
|
87
|
+
expect(message).not_to receive(:delete)
|
88
|
+
expect(subject.router).to receive(:emit).with('TAG', kind_of(Fluent::EventTime), message_attributes)
|
89
|
+
|
90
|
+
subject.run
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context 'with no delete messages param' do
|
95
|
+
let(:config) do
|
96
|
+
%(
|
97
|
+
tag TAG
|
98
|
+
max_number_of_messages 10
|
99
|
+
wait_time_seconds 10
|
100
|
+
visibility_timeout 1
|
101
|
+
delete_message true
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
before do
|
106
|
+
allow(subject).to receive(:queue) { queue }
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'parse through messages and emit it' do
|
110
|
+
expect(queue).to receive(:receive_messages)
|
111
|
+
.with(max_number_of_messages: 10, wait_time_seconds: 10, visibility_timeout: 1) { messages }
|
112
|
+
expect(subject).to receive(:parse_message).with(message) { message_attributes }
|
113
|
+
expect(message).to receive(:delete)
|
114
|
+
expect(subject.router).to receive(:emit).with('TAG', kind_of(Fluent::EventTime), message_attributes)
|
115
|
+
|
116
|
+
subject.run
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.run_all_when_everything_filtered = true
|
9
|
+
config.filter_run :focus
|
10
|
+
|
11
|
+
# Run specs in random order to surface order dependencies. If you find an
|
12
|
+
# order dependency and want to debug it, you can fix the order by providing
|
13
|
+
# the seed, which is printed after each run.
|
14
|
+
# --seed 1234
|
15
|
+
config.order = 'random'
|
16
|
+
|
17
|
+
require 'fluent/load'
|
18
|
+
require 'fluent/test'
|
19
|
+
require 'fluent/test/helpers'
|
20
|
+
require 'fluent/test/driver/output'
|
21
|
+
require 'fluent/test/driver/input'
|
22
|
+
|
23
|
+
require 'ostruct'
|
24
|
+
require 'pry'
|
25
|
+
require 'rr'
|
26
|
+
# prevent Test::Unit's AutoRunner from executing during RSpec's rake task
|
27
|
+
Test::Unit.run = true if defined?(Test::Unit) && Test::Unit.respond_to?(:run=)
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fluent-plugin-aws-sqs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Shai Moria
|
8
|
+
- Niv Lipetz
|
9
|
+
- Jacob Goldenberg
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2019-09-19 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: fluentd
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.14.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 0.14.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: aws-sdk-sqs
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.22.0
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.22.0
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: bundler
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: rake
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '12.0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '12.0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: test-unit
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.1.0
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 3.1.0
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: test-unit-rr
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
description: Fluentd SQS plugin to read data from AWS SQS
|
100
|
+
email:
|
101
|
+
- shai.moria@zooz.com
|
102
|
+
- niv.lipetz@zooz.com
|
103
|
+
- jacob.goldenberg@zooz.com
|
104
|
+
executables: []
|
105
|
+
extensions: []
|
106
|
+
extra_rdoc_files: []
|
107
|
+
files:
|
108
|
+
- ".gitignore"
|
109
|
+
- ".gitlab-ci.yml"
|
110
|
+
- Gemfile
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- VERSION
|
114
|
+
- fluent-plugin-aws-sqs.gemspec
|
115
|
+
- lib/fluent/plugin/in_sqs.rb
|
116
|
+
- lib/fluent/plugin/version.rb
|
117
|
+
- spec/lib/fluent/plugin/in_sqs_spec.rb
|
118
|
+
- spec/spec_helper.rb
|
119
|
+
homepage: https://github.com/zooz/fluent-plugin-aws-sqs
|
120
|
+
licenses:
|
121
|
+
- Apache-2.0
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.1'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
requirements: []
|
138
|
+
rubygems_version: 3.0.3
|
139
|
+
signing_key:
|
140
|
+
specification_version: 4
|
141
|
+
summary: Fluentd SQS plugin to read data from AWS SQS
|
142
|
+
test_files: []
|