Amazon SNSからSQSへメッセージを送信する

通知サービスSNSからSQSへは無料でメッセージを送れるみたいです
SNSのメッセージは8KBの制限があるためSQSへメッセージを直接転送できるなら
そっちの方が良い。主にCloudWatchと連携して使うことになると思います

SQSキューを作成

前回と同様名前を入力するだけ。

SNSトピックを作成

こちらも名前を入力するだけ。

SNSトピックに宛先を追加

Protocol Amazpn SQS
Endpoint arn:aws:sqs:ap-northeast-1:123456789012:queueName

SQSキューの権限を変更

Effect Allow
Principals Everybody(*)
Action SQS:SendMessage
Condition ArnEquals aws:SourceArn: "arn:aws:sns:ap-northeast-1:123456789012:topicName"

以上の設定でSNSのTopicを配信するとSQSにメッセージが追加される
キューから取得できるメッセージは以下のような形式

{
  "Type" : "Notification",
  "MessageId" : "6047f93e-4496-4974-92f2-b29e2c120e0c",
  "TopicArn" : "arn:aws:sns:ap-northeast-1:123456789012:topicName",
  "Subject" : "【SNSで入力した件名】",
  "Message" : "【SNSで入力した本文】",
  "Timestamp" : "2012-09-24T01:27:38.058Z",
  "SignatureVersion" : "1",
  "Signature" : "…",
  "SigningCertURL" : "https://sns.ap-northeast-1.amazonaws.com/….pem",
  "UnsubscribeURL" : "https://sns.ap-northeast-1.amazonaws.com/…"
}