aws python sdk send sns_AWS:boto3订阅SNS时的空SQS队列
通过boto3订阅SNS主题时,我的SQS队列中没有收到任何消息。在
这是我使用的代码或API凭据的问题吗?与此帐户关联的IAM策略具有AWS PowerUser特权,这意味着它可以不受限制地访问SNS主题和SQS队列。在
当我通过AWS控制台(createtopic,createqueue,subscribe queue to topic)创建等效结构并使用boto3、awscli或AWS控制台发送消息时,消息会正确传递。在
我不认为这是代码的问题,因为SubscriptionArn返回正确?在
我在美国东部1号和亚太东南1号地区都试过了,结果是一样的。在
样本代码:#!/usr/bin/env python3
import boto3
import json
def get_sqs_msgs_from_sns():
sqs_client = boto3.client('sqs', region_name='us-east-1')
sqs_obj = boto3.resource('sqs', region_name='us-east-1')
sns_client = boto3.client('sns', region_name='us-east-1')
sqs_queue_name = 'queue1'
topic_name = 'topic1'
# Create/Get Queue
sqs_client.create_queue(QueueName=sqs_queue_name)
sqs_queue = sqs_obj.get_queue_by_name(QueueName=sqs_queue_name)
queue_url = sqs_client.get_queue_url(QueueName=sqs_queue_name)['QueueUrl']
sqs_queue_attrs = sqs_client.get_queue_attributes(QueueUrl=queue_url,
AttributeNames=['All'])['Attributes']
sqs_queue_arn = sqs_queue_attrs['QueueArn']
if ':sqs.' in sqs_queue_arn:
sqs_queue_arn = sqs_queue_arn.replace(':sqs.', ':')
# Create SNS Topic
topic_res = sns_client.create_topic(Name=topic_name)
sns_topic_arn = topic_res['TopicArn']
# Subscribe SQS queue to SNS
sns_client.subscribe(
TopicArn=sns_topic_arn,
Protocol='sqs',
Endpoint=sqs_queue_arn
)
# Publish SNS Messages
test_msg = {'default': {"x":"foo","y":"bar"}}
test_msg_body = json.dumps(test_msg)
sns_client.publish(
TopicArn=sns_topic_arn,
Message=json.dumps({'default': test_msg_body}),
MessageStructure='json')
# Validate Message
sqs_msgs = sqs_queue.receive_messages(
AttributeNames=['All'],
MessageAttributeNames=['All'],
VisibilityTimeout=15,
WaitTimeSeconds=20,
MaxNumberOfMessages=5
)
assert len(sqs_msgs) == 1
assert sqs_msgs[0].body == test_msg_body
print(sqs_msgs[0].body) # This should output dict with keys Message, Type, Timestamp, etc., but only returns the test_msg
if __name__ == "__main__":
get_mock_sqs_msgs_from_sns()
我收到以下输出:
^{pr2}$
aws python sdk send sns_AWS:boto3订阅SNS时的空SQS队列相关推荐
- aws python库_适用于Alexa的新AWS Python SDK入门指南
aws python库 by Ralu Bolovan 由Ralu Bolovan 适用于Alexa的新AWS Python SDK入门指南 (A Beginner's guide to the ne ...
- aws python sns_使用AWS Lambd从AWS SNS读取时修改JSON消息
我有一个上游应用程序正在向一个SNS主题发送以下JSON消息.我们使用AWS lambda函数将这个JSON对象保存在S3中:{ "processResult": { " ...
- aws python sns_手把手教你用Python抓取AWS的日志(CloudTrail)数据
原标题:手把手教你用Python抓取AWS的日志(CloudTrail)数据 作者: Gang TAO 大数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的Cl ...
- aws python库_如何使用Python,AWS和IEX Cloud创建自动更新股市数据的Excel电子表格
aws python库 Many Python developers in the financial world are tasked with creating Excel documents f ...
- Datahub Python SDK入门手册
前言 DataHub是 MaxCompute 提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于 ...
- 【python】腾讯云+python SDK免费发送短信
最近好奇了一下1069开头的短信都是怎么发的呢?验证码或者营销短信,试用了两款免费发送短信的产品,一款是国外的TWILIO,使用教程挺多的,不知道是不是我使用方式不对,频率高的短信发不出来,好像会预充 ...
- 如何使用OpenAI API和Python SDK构建自己的聊天机器人
近日,OpenAI公司的ChatGPT模型走红网络.同时,OpenAI也推出了Chat API和gpt-3.5-turbo模型,让开发者能够更轻松地使用与ChatGPT类似的自然语言处理模型. 通过O ...
- AWS Python Lambda 使用 Layer
使用 Python 书写 AWS Lambda 的一个好处就是能够在控制台中直接编辑源代码,非常方便进行快速验证测试 AWS 环境相关的.这只限于使用 AWS 为 Python Lambda 运行时提 ...
- python 收发微信之一:利用 WxPusher 的 web api 及 python SDK 两种方式给自己发微信
目 录 摘要 实操 代码分析 需求来源与路径选择 参考 摘要 本文给出利用 WxPusher 提供的 web api 与 python SDK 两种方式,实现微信发送的 python 代码样例,并简单 ...
最新文章
- 从 no-code 到 low-code 再到 pro-code
- MySql允许被远程访问
- 如何实现Android平台GB28181前端设备接入
- readyState属性和status属性
- Oracle增加自增长列
- adb命令查看手机电量_你们要的App电量分析测试来了
- Chrome插件管理、在线离线安装方式、部分插件介绍
- ibatis 分页(转)
- Linux svn 命令每次都要输入密码o(╯□╰)o
- SVN下载 1.11.0版本 win7 32位 安装文件及中文语言包
- Android Design 与 Holo Theme
- 程序员必读的十四本经典书籍
- panabit连接控制
- “换头术”所引发的“长生不死”
- Android自定义实现九宫格抽奖功能
- 41. 如何手动触发全量回收垃圾,如何立即触发垃圾回收
- 2021跨年夜表白脱单情话句子 零点跨年夜表白成功文案说说
- Linux小白详细笔记
- android的快速开发框架集合
- springboot2.7集成spring-boot-starter-data-elasticsearch
热门文章
- 植树节准备中:合种樟子松、华山松和云杉
- NBT | 利用血液代谢组预测肠道微生物组的多样性
- Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
- R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、中位数)实战
- seaborn可视化散点图并自定义图像的标题(title)以及自定义标题的字体大小(Set a Title to a Seaborn Plot)
- matplotlib可视化基本散点图、在图像指定区域绘制方框(Draw Rectangle)
- R语言plotly可视化:plotly可视化基本散点图(指定图像类型、模式)、plotly可视化散点图(为不同分组数据配置不同的色彩)、ggplotly使用plotly包呈现ggplot2的可视化结果
- R语言基于多字段(多数据列、multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
- R语言ggplot2可视化使图形的背景在不同区域有不同的颜色实战
- R语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性