Amazon SNSをコマンドラインから使う
Amazon SNSのコマンドラインツールを設定する
AWSからSNSのコマンドラインツールをダウンロードしてパスに設定します。
export EC2_HOME=~/dev/aws/ec2-api-tools-1.4.4.1/ export AWS_AUTO_SCALING_HOME=~/dev/aws/AutoScaling-1.0.39.0/ export AWS_ELB_HOME=~/dev/aws/ElasticLoadBalancing-1.0.12.0/ export AWS_CLOUDWATCH_HOME=~/dev/aws/CloudWatch-1.0.12.1/ export AWS_ELASTICACHE_HOME=~/dev/aws/AmazonElastiCacheCli-1.5.000/ export AWS_SNS_HOME=~/dev/aws/SimpleNotificationServiceCli-1.0.2.3/ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/ export PATH=$PATH:$EC2_HOME/bin/:$JAVA_HOME/bin/:$AWS_AUTO_SCALING_HOME/bin/:$AWS_ELB_HOME/bin/:$AWS_CLOUDWATCH_HOME/bin/:$AWS_ELASTICACHE_HOME/bin/:$AWS_SNS_HOME/bin: export EC2_PRIVATE_KEY=~/dev/key/pk-XXXXXXXXXXXXXXXXXXXXX.pem export EC2_CERT=~/dev/key/cert-XXXXXXXXXXXXXXXXXXXXX.pem export AWS_CREDENTIAL_FILE=~/dev/key/credential.txt
コマンド一覧です。
$ sns-cmd Command Name Description ------------ ----------- help sns-add-permission Add a permission to a topic. sns-confirm-subscription Confirm a Subscription. sns-create-topic Create a topic. sns-delete-topic Delete a topic. sns-get-topic-attributes Get topic attributes. sns-list-subscriptions List all subscriptions. sns-list-subscriptions-by-topic List subscriptions by topic. sns-list-topics Lists all topics. sns-publish Publish a message to a topic. sns-remove-permission Remove permission from a topic. sns-set-topic-attributes Set topic attributes. sns-subscribe Subscribe to a topic. sns-unsubscribe Unsubscribe from a topic. version Prints the version of the CLI tool and the API. For help on a specific command, type '<commandname> --help'
Amazon SNSのトピックを作成する
トピックは、アクセスポイントとして機能します。作成は簡単です。ARNというのがアクセスポイントのリソース名を表しています。
$ sns-create-topic mytopic1 --region ap-northeast-1 arn:aws:sns:ap-northeast-1:771293814336:mytopic1
Amazon SNSのサブスクライブを設定する
サブスクライブで、トピックに届いたメッセージをどこに流すか設定します。サブスクライブがメールの場合、メールアドレスに確認が入りますので応答を忘れずに。
$ sns-subscribe arn:aws:sns:ap-northeast-1:771293814336:mytopic1 --protocol email --endpoint XXXXXXXX@gmail.com --region ap-northeast-1 Subscription request received.
Amazon SNSのパブリッシュをする
トピックに対してメッセージを送ります。メッセージ送信後にメールが届いていることを確認しました。
$ sns-publish arn:aws:sns:ap-northeast-1:771293814336:mytopic1 --message "hello" --region ap-northeast-1 f1c358dc-69e8-48c1-80d8-8937ae9ef6af
まとめ
Amazon SNSのコマンドラインツールで簡単にトピックの作成からサブスクライブとパブリッシュができることが分かりました!次は、Auto Scalingと組み合わせます。