Method: AWS::SNS::Topic#publish
- Defined in:
- lib/aws/sns/topic.rb
#publish(default_message, options = {}) ⇒ String
Publishes a message to this SNS topic.
topic.publish('a short message')
You can pass a subject that is used when sending the message to email endpoints:
topic.publish('message', :subject => 'SNS message subject')
If you would like to pass a different message to various protocols (endpoint types) you can pass those as options:
topic.publish('default message',
:http => "message sent to http endpoints",
:https => "message sent to https endpoints",
:email => "message sent to email endpoints")
The full list of acceptable protocols are listed below. The default message is sent to endpoints who’s protocol was not listed.
245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 |
# File 'lib/aws/sns/topic.rb', line 245 def publish , = {} = { :default => } [:http, :https, :email, :email_json, :sqs].each do |protocol| if [protocol] [protocol.to_s.gsub(/_/, '-')] = [protocol] end end publish_opts = {} publish_opts[:message] = .to_json publish_opts[:message_structure] = 'json' publish_opts[:subject] = [:subject] if [:subject] publish_opts[:topic_arn] = arn response = client.publish(publish_opts) response. end |