通过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队列相关推荐

  1. aws python库_适用于Alexa的新AWS Python SDK入门指南

    aws python库 by Ralu Bolovan 由Ralu Bolovan 适用于Alexa的新AWS Python SDK入门指南 (A Beginner's guide to the ne ...

  2. aws python sns_使用AWS Lambd从AWS SNS读取时修改JSON消息

    我有一个上游应用程序正在向一个SNS主题发送以下JSON消息.我们使用AWS lambda函数将这个JSON对象保存在S3中:{ "processResult": { " ...

  3. aws python sns_手把手教你用Python抓取AWS的日志(CloudTrail)数据

    原标题:手把手教你用Python抓取AWS的日志(CloudTrail)数据 作者: Gang TAO 大数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的Cl ...

  4. aws python库_如何使用Python,AWS和IEX Cloud创建自动更新股市数据的Excel电子表格

    aws python库 Many Python developers in the financial world are tasked with creating Excel documents f ...

  5. Datahub Python SDK入门手册

    前言 DataHub是 MaxCompute 提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于 ...

  6. 【python】腾讯云+python SDK免费发送短信

    最近好奇了一下1069开头的短信都是怎么发的呢?验证码或者营销短信,试用了两款免费发送短信的产品,一款是国外的TWILIO,使用教程挺多的,不知道是不是我使用方式不对,频率高的短信发不出来,好像会预充 ...

  7. 如何使用OpenAI API和Python SDK构建自己的聊天机器人

    近日,OpenAI公司的ChatGPT模型走红网络.同时,OpenAI也推出了Chat API和gpt-3.5-turbo模型,让开发者能够更轻松地使用与ChatGPT类似的自然语言处理模型. 通过O ...

  8. AWS Python Lambda 使用 Layer

    使用 Python 书写 AWS Lambda 的一个好处就是能够在控制台中直接编辑源代码,非常方便进行快速验证测试 AWS 环境相关的.这只限于使用 AWS 为 Python Lambda 运行时提 ...

  9. python 收发微信之一:利用 WxPusher 的 web api 及 python SDK 两种方式给自己发微信

    目 录 摘要 实操 代码分析 需求来源与路径选择 参考 摘要 本文给出利用 WxPusher 提供的 web api 与 python SDK 两种方式,实现微信发送的 python 代码样例,并简单 ...

最新文章

  1. 从 no-code 到 low-code 再到 pro-code
  2. MySql允许被远程访问
  3. 如何实现Android平台GB28181前端设备接入
  4. readyState属性和status属性
  5. Oracle增加自增长列
  6. adb命令查看手机电量_你们要的App电量分析测试来了
  7. Chrome插件管理、在线离线安装方式、部分插件介绍
  8. ibatis 分页(转)
  9. Linux svn 命令每次都要输入密码o(╯□╰)o
  10. SVN下载 1.11.0版本 win7 32位 安装文件及中文语言包
  11. Android Design 与 Holo Theme
  12. 程序员必读的十四本经典书籍
  13. panabit连接控制
  14. “换头术”所引发的“长生不死”
  15. Android自定义实现九宫格抽奖功能
  16. 41. 如何手动触发全量回收垃圾,如何立即触发垃圾回收
  17. 2021跨年夜表白脱单情话句子 零点跨年夜表白成功文案说说
  18. Linux小白详细笔记
  19. android的快速开发框架集合
  20. springboot2.7集成spring-boot-starter-data-elasticsearch

热门文章

  1. 植树节准备中:合种樟子松、华山松和云杉
  2. NBT | 利用血液代谢组预测肠道微生物组的多样性
  3. Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
  4. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、中位数)实战
  5. seaborn可视化散点图并自定义图像的标题(title)以及自定义标题的字体大小(Set a Title to a Seaborn Plot)
  6. matplotlib可视化基本散点图、在图像指定区域绘制方框(Draw Rectangle)
  7. R语言plotly可视化:plotly可视化基本散点图(指定图像类型、模式)、plotly可视化散点图(为不同分组数据配置不同的色彩)、ggplotly使用plotly包呈现ggplot2的可视化结果
  8. R语言基于多字段(多数据列、multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
  9. R语言ggplot2可视化使图形的背景在不同区域有不同的颜色实战
  10. R语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性