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

如何使用AWS CLI获取SNS Topic最新消息?查询AWS IP范围变更通知主题

用AWS CLI获取Amazon IP范围变更SNS主题最新消息的操作方法

注意:SNS是推送型消息服务,本身不持久化存储历史消息,无法直接从主题中拉取已推送的历史内容。要接收该主题的消息,需要先订阅主题并将消息投递到支持拉取操作的终端节点,SQS队列是最适配AWS CLI操作的方案。

操作步骤

  • 第一步:配置AWS CLI的权限与区域
    确保你的AWS账号拥有SNS订阅、SQS队列创建与读写权限,且操作时指定us-east-1区域(该SNS主题部署在美东1区域)。
  • 第二步:创建用于接收消息的SQS队列
    执行以下命令创建队列:
    aws sqs create-queue --queue-name AmazonIpChangeQueue --region us-east-1
    
    命令执行后返回队列URL,再执行以下命令获取队列ARN:
    aws sqs get-queue-attributes --queue-url <替换为上一步返回的队列URL> --attribute-names QueueArn --region us-east-1
    
  • 第三步:为SQS队列配置访问权限,允许SNS主题推送消息
    执行以下命令,替换其中的队列URL和队列ARN占位符:
    aws sqs set-queue-attributes --queue-url <替换为你的队列URL> --attributes '{"Policy":"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"sns.amazonaws.com\"},\"Action\":\"sqs:SendMessage\",\"Resource\":\"<替换为你的队列ARN>\",\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged\"}}}]"}' --region us-east-1
    
  • 第四步:将SQS队列订阅到目标SNS主题
    执行以下命令,替换队列ARN占位符:
    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged --protocol sqs --notification-endpoint <替换为你的队列ARN> --region us-east-1
    
  • 第五步:拉取最新的IP变更消息
    订阅生效后,AWS每次推送IP范围变更通知时,你都可以执行以下命令拉取队列中的最新消息:
    aws sqs receive-message --queue-url <替换为你的队列URL> --max-number-of-messages 10 --wait-time-seconds 20 --region us-east-1
    
    处理完消息后可执行以下命令删除队列中的该条消息,避免重复拉取:
    aws sqs delete-message --queue-url <替换为你的队列URL> --receipt-handle <替换为receive-message返回的ReceiptHandle参数值> --region us-east-1
    

补充说明

如果需要查询历史的AWS服务IP范围,可直接使用AWS官方公开的IP范围JSON文件,无需订阅SNS主题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:03