You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过匹配模式使用AWS CLI批量删除AWS SNS主题和SQS队列

批量删除匹配命名模式的AWS SNS主题与SQS队列

批量删除SNS主题

前缀匹配脚本

如果要删除所有名称包含特定前缀(比如dev-)的SNS主题,用以下bash脚本:

# 替换成你要匹配的前缀
PREFIX="dev-"

# 遍历并删除匹配的主题
aws sns list-topics --query "Topics[?contains(TopicArn, '$PREFIX')].TopicArn" --output text | tr '\t' '\n' | while read arn; do
    if [ -n "$arn" ]; then
        echo "正在删除SNS主题: $arn"
        aws sns delete-topic --topic-arn "$arn"
    fi
done

正则匹配脚本

如果需要更复杂的匹配规则(比如删除以dev-开头且以-test结尾的主题),用grep过滤:

# 遍历符合正则的主题并删除
aws sns list-topics --query "Topics[*].TopicArn" --output text | tr '\t' '\n' | grep "dev-.\+-test$" | while read arn; do
    echo "正在删除SNS主题: $arn"
    aws sns delete-topic --topic-arn "$arn"
done

批量删除SQS队列

前缀匹配脚本

针对前缀匹配的SQS队列,用以下脚本:

# 替换成你要匹配的前缀
PREFIX="dev-"

# 遍历并删除匹配的队列
aws sqs list-queues --queue-name-prefix "$PREFIX" --query "QueueUrls[]" --output text | tr '\t' '\n' | while read url; do
    if [ -n "$url" ]; then
        echo "正在删除SQS队列: $url"
        aws sqs delete-queue --queue-url "$url"
    fi
done

正则匹配脚本

复杂规则下用grep筛选队列URL:

# 遍历符合正则的队列并删除
aws sqs list-queues --query "QueueUrls[]" --output text | tr '\t' '\n' | grep "dev-.\+-queue$" | while read url; do
    echo "正在删除SQS队列: $url"
    aws sqs delete-queue --queue-url "$url"
done

关键注意事项

  • 执行前一定要先测试:把脚本里的aws sns delete-topic/aws sqs delete-queue换成echo,确认要删除的对象完全符合预期,避免误删重要资源。
  • 确保你的AWS账号具备对应的权限:sns:ListTopics、sns:DeleteTopic、sqs:ListQueues、sqs:DeleteQueue。
  • 如果目标资源不在默认区域,需要在所有aws命令后加上--region <你的区域>参数(比如--region us-east-1)。

内容的提问来源于stack exchange,提问作者Alexander Pravdin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:50:01