ShellScript で Amazon SNS トピックに紐づかないサブスクリプションを削除する方法
- POST
ShellScript で Amazon SNS トピックに紐づかないサブスクリプションを削除する方法について調査した結果を備忘録として残しておく
環境 OS: MacOS 実際のコード «…» 部分は実際の環境に応じて書き換える
#!/bin/bash AWS_PROFILE=<<AWS Configure Profile>> # SNSトピック一覧を取得 topics=$(aws sns list-topics --profile=${AWS_PROFILE} | jq -r '.Topics[].TopicArn') # SNSサブスクリプション一覧を取得 subscriptions=$(aws sns list-subscriptions --profile=${AWS_PROFILE}) # トピックに紐づかないサブスクリプションを削除 echo $subscriptions | jq -c '.Subscriptions[]' | while read subscription; do subscriptionArn=$(echo $subscription | jq -r '.SubscriptionArn') topicArn=$(echo $subscription | jq -r '.TopicArn') # サブスクリプションのtopicArnがtopicsに含まれていなければ削除 if ! echo $topics | grep $topicArn > /dev/null then aws sns unsubscribe --subscription-arn $subscriptionArn --profile=${AWS_PROFILE} echo "削除したサブスクリプション: $subscriptionArn" fi done