[AWS]使用cli大量刪除sns
這近有個需求,需要針對sns
這個服務去做刪除。
因為在Console上面一次只能刪一筆,所以只好下指令了
但又很懶得去用aws-nuke
,畢竟只有sns
,所以直接用shell
+aws cli
去做了。
SNS Topics部分
先查出所有的sns topics
:
aws sns list-topics --region us-east-1 --output text > topics
然後用awk
去取得某一欄位再丟進其他檔案:
awk '{print $2}' topics > deleteTopic
然後寫一隻簡單的script
去跑迴圈:
#!/bin/bash
while read line
do
aws sns delete-topic --topic-arn $line --region us-east-1
echo 'the '$line' deleted'
sleep 3
done < deleteTopic
簡單說明,做一個while
迴圈讀取檔案並每次讀取一行後執行aws sns delete-topic
指令,執行後停止3秒一直到檔案讀取完畢。
SNS Subscribe部分也是大同小異
先查出所有的subscriptions
,一樣用awk
去過濾:
aws sns list-subscriptions --region us-east-1 --output text > subs
awk '{print $5}' subs > deleteSub
拿之前的script
改:
#!/bin/bash
while read line
do
aws sns unsubscribe --subscription-arn $line --region us-east-1
echo 'the '$line' deleted'
sleep 3
done < deleteSub