title: Send SNS notifications to Slack
body: <p>I'd like to send SNS notifications into Slack. I receive notifications on my e-mail. It looks like:</p>
  
  <pre><code>Instance: i-0f9606e41cd6f1e8e has changed state
  State: running
  Type: c5.4xlarge
  Public IP Address: 52.32.193.26
  Private IP Address: 10.10.75.168
  Region: us-west-2a
  Name: VOSaaS-Cluster-SaaS-Longevity-055ba27d-f7c4-b70a-0954-a08ae21ccb2d-vos-node-i-0f9606e41cd6f1e8e
  </code></pre>
  
  <p>But also I want to receive the same output into my Slack channel. I've already set up the incoming webhooks and I can receive simple messages but have a problem with sending output.</p>
  
  <pre><code>MY_SNS_TOPIC_ARN = 'arn:aws:sns:us-west-2:421572644019:CloudWatchAlarmsForSpotInstances'
  sns_client = boto3.client('sns')
  ec2_spot_info = sns_client.publish(
      TopicArn = MY_SNS_TOPIC_ARN,
      Subject = 'EC2 Spot Instances Termination Notifications',
      Message =   'Instance: ' + instance_id + ' has changed state\n' +
                  'State: ' + instance['State']['Name'] + '\n' +
                  'Type: ' + instance['InstanceType'] + '\n' +
                  'Public IP Address: ' + instance['PublicIpAddress'] + '\n' +
                  'Private IP Address: ' + instance['PrivateIpAddress'] + '\n' +
                  'Region: ' + instance['Placement']['AvailabilityZone'] + '\n' +
                  'Name: ' + name
  )
  
  slack_url='https://hooks.slack.com/services/+token'
  slack_msg = {
                  "attachments": [
                      {
                          "title": "EC2 Spot Instance Info",
                          "pretext": "EC2 Spot Instances Termination Notifications",
                          "color": "#ed1717",
                          "text": ec2_spot_info
                      }
                  ]
              }
  output = json.dumps(slack_msg)
  r = requests.post(slack_url, data = output)
  </code></pre>