SNS (Simple Notification Service)はPub/Subメッセージングサービスを提供する。
他サービスからTopicに対しての通知を受け取り、他サービスへ再び通知します。
通知先はサブスクリプションで定義を行います。
SQSがメッセージの配送だとしたら、SNSは到着の通知を行う。
SQSが宅配便だとしたら、SNSはインターホン。のようなイメージかな(^_^;)
SNSトピックに対して通知する
pythonでの記述例。
sns = boto3.resource('sns') topic = sns.Topic('arn:aws:sns:ap-northeast-1:****:yourTopicName') topic.publish( Message='withMessage' )
これでSNSのサブスクリプションに対して通知を行う。
サブスクリプションとして定義できる通知先
通知時のプロトコルは以下を選択できます。
プロトコル選択後、対応する通知先アドレスを指定します。
サブスクリプションをLambdaとして登録する
通知先をLambda関数にすることもできる。
この時、通知はhandler関数のevent引数から確認することができる。
def lambda_handler(event, context): # SNSの通知はeventから運ばれる for rec in event['Records']: snsmessage = rec['Sns']['Message'] ...
リンク