blob: dbc2d4768e2fc560b13341df1ff944cf7ea05000 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
require 'aws-sdk'
class AwsSns < Oxidized::Hook
def validate_cfg!
raise KeyError, 'hook.region is required' unless cfg.has_key?('region')
raise KeyError, 'hook.topic_arn is required' unless cfg.has_key?('topic_arn')
end
def run_hook(ctx)
sns = Aws::SNS::Resource.new(region: cfg.region)
topic = sns.topic(cfg.topic_arn)
message = {
:event => ctx.event.to_s
}
if ctx.node
message.merge!(
:group => ctx.node.group.to_s,
:model => ctx.node.model.class.name.to_s.downcase,
:node => ctx.node.name.to_s
)
end
topic.publish({
message: message.to_json
})
end
end
|