fluent-plugin-sns 2.1.7 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +10 -11
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/fluent/plugin/out_sns.rb +47 -10
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c35f1599ebe9e156c55ee4e985fea312eaf862ac
|
4
|
+
data.tar.gz: 2aa903bae1f77f667a16eea2a64a119fc3b7042e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6dc25c329fd1843ffe7a1ef3f9ada2ffcdbea79d026a70aa1df1912be8cbd874365fdbfeb074eaf69899e89aaf91de2b294a3a369285297412b2694f99c9b23
|
7
|
+
data.tar.gz: 9fc5500948a63e3ac492725c3936ab57335fd1693044f13e9e540e6bf100f5695ddc366473d7ff8b57958e7e0dd0495d2b3eff008caa1da17196ee5d7395936a
|
data/README.rdoc
CHANGED
@@ -28,16 +28,9 @@ Send fluent-event as message to amazon SNS.
|
|
28
28
|
|
29
29
|
# following attibutes are optional
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
# Asia Pacific (Tokyo) [Default] : sns.ap-northeast-1.amazonaws.com
|
35
|
-
# Asia Pacific (Singapore) : sns.ap-southeast-1.amazonaws.com
|
36
|
-
# US-East (Virginia) : sns.us-east-1.amazonaws.com
|
37
|
-
# US-West (Oregon) : sns.us-west-2.amazonaws.com
|
38
|
-
# US-West (N.California) : sns.us-west-1.amazonaws.com
|
39
|
-
# EU-West (Ireland) : sns.eu-west-1.amazonaws.com
|
40
|
-
# South America (São Paulo) : sns.sa-east-1.amazonaws.com
|
31
|
+
# AWS region (defaults to 'ap-northeast-1'), for a list of all available
|
32
|
+
# regions see: http://docs.aws.amazon.com/general/latest/gr/rande.html#sns_region
|
33
|
+
sns_region {region}
|
41
34
|
|
42
35
|
sns_subject_template {template_erb_file_path}
|
43
36
|
sns_subject_key {sns_subject_key}
|
@@ -46,6 +39,12 @@ Send fluent-event as message to amazon SNS.
|
|
46
39
|
sns_body_template {sns_body_template}
|
47
40
|
sns_body_key {sns_body_key}
|
48
41
|
|
42
|
+
# SNS Message attributes:
|
43
|
+
# http://docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html
|
44
|
+
# Note that currently only string values are supported.
|
45
|
+
sns_message_attributes {attribute: string_value}
|
46
|
+
sns_message_attributes_keys {attribute: key_in_record_with_string_value}
|
47
|
+
|
49
48
|
proxy http(s)://{url}:{port}
|
50
49
|
|
51
50
|
</match>
|
@@ -59,7 +58,7 @@ Send fluent-event as message to amazon SNS.
|
|
59
58
|
type sns
|
60
59
|
|
61
60
|
sns_topic_name example
|
62
|
-
|
61
|
+
|
63
62
|
sns_endpoint sns.ap-northeast-1.amazonaws.com
|
64
63
|
|
65
64
|
sns_subject_key from
|
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ begin
|
|
13
13
|
gemspec.has_rdoc = false
|
14
14
|
gemspec.require_paths = ["lib"]
|
15
15
|
gemspec.add_dependency "fluentd", "~> 0.10.0"
|
16
|
-
gemspec.add_dependency "aws-sdk
|
16
|
+
gemspec.add_dependency "aws-sdk", "~> 2"
|
17
17
|
gemspec.test_files = Dir["test/**/*.rb"]
|
18
18
|
gemspec.files = Dir["lib/**/*", "test/**/*.rb"] + %w[VERSION AUTHORS Rakefile]
|
19
19
|
gemspec.executables = []
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.1.0
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fluent
|
2
2
|
|
3
|
-
require 'aws-sdk
|
3
|
+
require 'aws-sdk'
|
4
4
|
|
5
5
|
class SNSOutput < Output
|
6
6
|
|
@@ -22,7 +22,11 @@ module Fluent
|
|
22
22
|
config_param :sns_body_template, :default => nil
|
23
23
|
config_param :sns_body_key, :string, :default => nil
|
24
24
|
config_param :sns_body, :string, :default => nil
|
25
|
-
config_param :
|
25
|
+
config_param :sns_message_attributes, :hash, :default => nil
|
26
|
+
config_param :sns_message_attributes_keys, :hash, :default => nil
|
27
|
+
config_param :sns_endpoint, :string, :default => 'sns.ap-northeast-1.amazonaws.com',
|
28
|
+
:obsoleted => 'Use sns_region instead'
|
29
|
+
config_param :sns_region, :string, :default => 'ap-northeast-1'
|
26
30
|
config_param :proxy, :string, :default => ENV['HTTP_PROXY']
|
27
31
|
|
28
32
|
def configure(conf)
|
@@ -32,16 +36,18 @@ module Fluent
|
|
32
36
|
def start
|
33
37
|
super
|
34
38
|
options = {}
|
35
|
-
options[:
|
36
|
-
options[:
|
39
|
+
options[:region] = @sns_region
|
40
|
+
options[:http_proxy] = @proxy
|
37
41
|
if @aws_key_id && @aws_sec_key
|
38
|
-
options[:
|
39
|
-
options[:secret_access_key] = @aws_sec_key
|
42
|
+
options[:credentials] = Aws::Credentials.new(@aws_key_id, @aws_sec_key)
|
40
43
|
end
|
41
|
-
|
44
|
+
Aws.config.update(options)
|
42
45
|
|
43
|
-
@sns =
|
44
|
-
@topic = @sns.topics.find{|topic| @sns_topic_name == topic.
|
46
|
+
@sns = Aws::SNS::Resource.new
|
47
|
+
@topic = @sns.topics.find{|topic| @sns_topic_name == topic.arn.split(":")[-1]}
|
48
|
+
if @topic.nil?
|
49
|
+
raise ConfigError, "No topic found for topic name #{@sns_topic_name}."
|
50
|
+
end
|
45
51
|
|
46
52
|
@subject_template = nil
|
47
53
|
unless @sns_subject_template.nil?
|
@@ -68,7 +74,13 @@ module Fluent
|
|
68
74
|
record['time'] = Time.at(time).localtime
|
69
75
|
body = get_body(record).to_s.force_encoding('UTF-8')
|
70
76
|
subject = get_subject(record).to_s.force_encoding('UTF-8').gsub(/(\r\n|\r|\n)/, '')
|
71
|
-
|
77
|
+
message_attributes = get_message_attributes(record)
|
78
|
+
|
79
|
+
@topic.publish({
|
80
|
+
message: body,
|
81
|
+
subject: subject,
|
82
|
+
message_attributes: message_attributes,
|
83
|
+
})
|
72
84
|
}
|
73
85
|
end
|
74
86
|
|
@@ -85,5 +97,30 @@ module Fluent
|
|
85
97
|
end
|
86
98
|
record[@sns_body_key] || @sns_body || record.to_json
|
87
99
|
end
|
100
|
+
|
101
|
+
def get_message_attributes(record)
|
102
|
+
message_attributes = {}
|
103
|
+
|
104
|
+
if @sns_message_attributes_keys
|
105
|
+
@sns_message_attributes_keys.each_pair do |attribute, key|
|
106
|
+
value = record[key]
|
107
|
+
if value
|
108
|
+
message_attributes[attribute] = {
|
109
|
+
data_type: "String",
|
110
|
+
string_value: value,
|
111
|
+
}
|
112
|
+
end
|
113
|
+
end
|
114
|
+
elsif @sns_message_attributes
|
115
|
+
@sns_message_attributes.each_pair do |attribute, value|
|
116
|
+
message_attributes[attribute] = {
|
117
|
+
data_type: "String",
|
118
|
+
string_value: value,
|
119
|
+
}
|
120
|
+
end
|
121
|
+
end
|
122
|
+
return message_attributes
|
123
|
+
end
|
124
|
+
|
88
125
|
end
|
89
126
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuri Odagiri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.10.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: aws-sdk
|
28
|
+
name: aws-sdk
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2'
|
41
41
|
description:
|
42
42
|
email: ixixizko@gmail.com
|
43
43
|
executables: []
|