Amazon SNS output plugin for Fluent
Install
$ gem install fluent-plugin-sns
Component
SNSOutput
Send fluent-event as message to amazon SNS.
Configuratin
SNSOutput
<match sns.**>
type sns
# following attibutes are required
sns_topic_name {sns_topic_name}
# following attibutes are required if you don't use IAM Role nor export credentials to ENV
aws_key_id {your_aws_key_id}
aws_sec_key {your_aws_secret_key}
# following attibutes are optional
# AWS region (defaults to 'ap-northeast-1'), for a list of all available
# regions see: http://docs.aws.amazon.com/general/latest/gr/rande.html#sns_region
sns_region {region}
sns_subject_template {template_erb_file_path}
sns_subject_key {sns_subject_key}
sns_subject {sns_subject} #constant subject
sns_body_template {sns_body_template}
sns_body_key {sns_body_key}
# SNS Message attributes:
# http://docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html
# Note that currently only string values are supported.
sns_message_attributes {attribute: string_value}
sns_message_attributes_keys {attribute: key_in_record_with_string_value}
proxy http(s)://{url}:{port}
</match>
Example
fluentd.conf
<match sns.**>
type sns
sns_topic_name example
sns_endpoint sns.ap-northeast-1.amazonaws.com
sns_subject_key from
sns_body_template /path/to/template/body_template.erb
</match>
template
/path/to/template/body_template.erb
hello <%= record['to'] %>!
sample input
$ echo '{"from":'Alice',"to":"Bob" }' | fluent-cat sns.example
Then, the message is published. (subject -> ‘Alice’, body -> ‘hello Bob!’)
Copyright
- Copyright
-
Copyright © 2011- Yuri Odagiri
- License
-
Apache License, Version 2.0