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/…" }