こんにちは。AWS CLIが好きな福島です。
はじめに
今回は、SNS関連の情報を取得する方法をご紹介いたします。
利用するコマンド,サブコマンド
まず、AWS CLIの構造は以下の通りです。
aws <command> <subcommand> [options and parameters]
上記を前提に今回使う <command>,<subcommand>は、以下の通りです。
<command>
- sns
<subcommand>
- list-topics
Topicの一覧を出力します。 - get-topic-attributes
Topicの詳細を出力します。 - list-subscriptions
Subscriptionの一覧を出力します。 - get-subscription-attributes
Subscriptionの詳細を出力します。
Topicの一覧
Topicの一覧
- 実行コマンド
aws sns list-topics --query "Topics[].[TopicArn]" --output text
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns arn:aws:sns:ap-northeast-1:111111111111:codestar-notifications-
Topicのディスプレイ名,Confirme数,Delete数
- 実行コマンド
aws sns list-topics --query "Topics[].[TopicArn]" --output text | while read line do echo $line aws sns get-topic-attributes --topic-arn $line --query "Attributes.[DisplayName,SubscriptionsConfirmed,SubscriptionsDeleted]" --output text done
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic
autoscaling-topic 0 0
arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG
1 0
arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns
chat-bot-sns 0 1
arn:aws:sns:ap-northeast-1:111111111111:codestar-notifications-
0 0
Topicのポリシー一覧
- 実行コマンド
aws sns list-topics --query "Topics[].[TopicArn]" --output text | while read line do echo $line aws sns get-topic-attributes --topic-arn $line --query "Attributes.Policy" --output text | jq done
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "111111111111"
}
}
}
]
}
arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "111111111111"
}
}
}
]
}
DeliveryPolicy一覧
- 実行コマンド
aws sns list-topics --query "Topics[].[TopicArn]" --output text | while read line do echo $line aws sns get-topic-attributes --topic-arn $line --query "Attributes.[EffectiveDeliveryPolicy]" --output text | jq done
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic
{
"http": {
"defaultHealthyRetryPolicy": {
"minDelayTarget": 20,
"maxDelayTarget": 20,
"numRetries": 3,
"numMaxDelayRetries": 0,
"numNoDelayRetries": 0,
"numMinDelayRetries": 0,
"backoffFunction": "linear"
},
"disableSubscriptionOverrides": false
}
}
arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG
{
"http": {
"defaultHealthyRetryPolicy": {
"minDelayTarget": 20,
"maxDelayTarget": 20,
"numRetries": 3,
"numMaxDelayRetries": 0,
"numNoDelayRetries": 0,
"numMinDelayRetries": 0,
"backoffFunction": "linear"
},
"disableSubscriptionOverrides": false
}
}
Topicの各種ロール一覧
- 実行コマンド
aws sns list-topics --query "Topics[].[TopicArn]" --output text | while read line do echo $line aws sns get-topic-attributes --topic-arn $line --query "Attributes.[LambdaSuccessFeedbackRoleArn,LambdaFailureFeedbackRoleArn,HTTPSuccessFeedbackRoleArn,HTTPFailureFeedbackRoleArn]" --output text done
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:autoscaling-topic None None None None arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG None None None None arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns None None None None arn:aws:sns:ap-northeast-1:111111111111:codestar-notifications- arn:aws:iam::111111111111:role/SNSSuccessFeedback arn:aws:iam::111111111111:role/SNSFailureFeedback arn:aws:iam::111111111111:role/SNSSuccessFeedback arn:aws:iam::111111111111:role/SNSFailureFeedback
Subscriptionsの一覧
Protocol,Endpoint
- 実行コマンド
aws sns list-subscriptions --query "Subscriptions[].[Protocol,Endpoint]" --output text
- 実行結果
email hoge@gmail.com https https://global.sns-api.chatbot.amazonaws.com lambda arn:aws:lambda:ap-northeast-1:111111111111:function:marklogic-NodeMgrLambdaStack--NodeManagerFunction3-WRG44onEPNdE sqs arn:aws:sqs:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupQueue-3KH4TGA6XAMU
TopicArn,SubscriptionArn
- 実行コマンド
aws sns list-subscriptions --query "Subscriptions[].[TopicArn,SubscriptionArn]" --output text
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns:fd223e0e-1e69-4a59-a642-43f014eb9c2b arn:aws:sns:ap-northeast-1:111111111111:datahub-NodeMgrLambdaStack-TQYCU36Z4IFO-NodeManagerSnsTopic-4QKM54WKPVU1 arn:aws:sns:ap-northeast-1:111111111111:datahub-NodeMgrLambdaStack-TQYCU36Z4IFO-NodeManagerSnsTopic-4QKM54WKPVU1:4763e054-48a3-46f4-b7ee-cdc40c2bc26a
Protocol,Endpoint,PendingConfirmation,ConfirmationWasAuthenticated
- 実行コマンド
aws sns list-subscriptions --query "Subscriptions[].[SubscriptionArn]" --output text | while read line do echo $line aws sns get-subscription-attributes --subscription-arn $line --query "Attributes.[Protocol,Endpoint,PendingConfirmation,ConfirmationWasAuthenticated]" --output text done
- 実行結果
arn:aws:sns:ap-northeast-1:111111111111:marklogic-stack-02-NodeMgrLambdaStack-1KG604K4JY4TO-NodeManagerSnsTopic-16HASYLCAQFOD:fd693a5e-1ceb-4b23-8c48-d19b98552018 lambda arn:aws:lambda:ap-northeast-1:111111111111:function:marklogic-stack-02-NodeMgrLamb-NodeManagerFunction-1G7690IE46Y11 false true arn:aws:sns:ap-northeast-1:111111111111:test:253f691c-cc18-4a34-85af-8f918b6ba1a5 email xxxxxx@gmail.com false false arn:aws:sns:ap-northeast-1:111111111111:chat-bot-sns:fd223e0e-1e69-4a59-a642-43f014eb9c2b https https://global.sns-api.chatbot.amazonaws.com false false arn:aws:sns:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupTopic-15LBB16O3AJVG:e7de114f-4227-4068-ab1b-a9ef9c5315dd sqs arn:aws:sqs:ap-northeast-1:111111111111:awseb-e-5fy4tauppe-stack-NewSignupQueue-3KH4TGA6XAMU false true
終わりに
今回は、SNS関連の情報を取得するコマンドをご紹介いたしました。 どなたかのお役に立てれば幸いです。