fluent-plugin-sns 2.1.7 → 3.1.0
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 +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: []
|