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

如何通过AWS CLI查询指定SQS队列订阅的所有AWS SNS主题?

如何通过AWS CLI查找SQS队列订阅的所有SNS主题

当然可以实现这个需求!虽然AWS CLI没有提供直接通过SQS队列名称查询订阅主题的命令,但我们可以组合几个基础命令来完成这个任务。下面是具体的步骤和自动化脚本:

步骤1:获取目标SQS队列的ARN

首先需要拿到你要查询的SQS队列的ARN,因为SNS订阅是通过ARN来关联队列的。执行以下命令(记得替换YOUR_QUEUE_NAME为你的队列名称,若队列不在默认区域,加上--region <区域名>参数):

QUEUE_ARN=$(aws sqs get-queue-attributes --queue-name YOUR_QUEUE_NAME --attribute-names QueueArn --query 'Attributes.QueueArn' --output text)
echo "目标队列ARN: $QUEUE_ARN"

这个命令会直接提取队列的ARN并存储到变量中,方便后续使用。

步骤2:遍历所有SNS主题并检查订阅关系

接下来我们需要列出账号下所有的SNS主题,然后逐个检查每个主题的订阅者中是否包含目标队列的ARN。你可以手动执行这些步骤,也可以用下面的bash脚本来自动化完成:

#!/bin/bash

# 替换为你的SQS队列名称
QUEUE_NAME="YOUR_QUEUE_NAME"
# 如果队列不在默认区域,取消注释并设置区域
# REGION="us-east-1"

# 获取队列ARN
if [ -n "$REGION" ]; then
  QUEUE_ARN=$(aws sqs get-queue-attributes --queue-name "$QUEUE_NAME" --attribute-names QueueArn --query 'Attributes.QueueArn' --output text --region "$REGION")
else
  QUEUE_ARN=$(aws sqs get-queue-attributes --queue-name "$QUEUE_NAME" --attribute-names QueueArn --query 'Attributes.QueueArn' --output text)
fi

echo "正在查找订阅了队列 $QUEUE_NAME (ARN: $QUEUE_ARN) 的SNS主题..."

# 获取所有SNS主题ARN列表
TOPICS=$(aws sns list-topics --query 'Topics[].TopicArn' --output text)

# 遍历每个主题,检查订阅者
for TOPIC_ARN in $TOPICS; do
  # 获取当前主题的所有订阅
  SUBSCRIPTIONS=$(aws sns list-subscriptions-by-topic --topic-arn "$TOPIC_ARN" --query 'Subscriptions[].Endpoint' --output text)
  
  # 检查是否包含目标队列ARN
  if echo "$SUBSCRIPTIONS" | grep -q "$QUEUE_ARN"; then
    echo "找到匹配的SNS主题: $TOPIC_ARN"
  fi
done

脚本使用说明:

  1. 将脚本中的YOUR_QUEUE_NAME替换为你的实际队列名称。
  2. 如果队列不在AWS CLI默认配置的区域,取消注释并设置REGION变量。
  3. 赋予脚本执行权限:chmod +x find-sns-subscriptions.sh。
  4. 运行脚本:./find-sns-subscriptions.sh。

注意事项

  • 权限要求:执行这些命令的IAM实体需要具备以下权限:
    • sqs:GetQueueAttributes(针对目标SQS队列)
    • sns:ListTopics(针对账号下所有SNS主题)
    • sns:ListSubscriptionsByTopic(针对每个SNS主题)
  • 跨区域场景:如果你的SQS队列订阅了其他区域的SNS主题,需要在脚本中针对每个区域单独执行查询(修改REGION变量后多次运行)。
  • 性能问题:如果账号下有大量SNS主题,遍历检查的过程会比较耗时,这是目前没有直接API的情况下的折中方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:07:11