无法使用 boto3 将消息写入 SQS

Can't write message to SQS using boto3

我正在使用 AWS 库 boto3 连接到他们的 SQS 服务。我正在尝试连接、读取和写入队列中的消息,但这似乎不起作用,文档也没有帮助

这是我的代码,谁能看出我做错了什么?

#Connect to a session
session = Session(aws_access_key_id=SQSAccessKey, aws_secret_access_key=SQSSecretKey,region_name=sqsRegion)

#Connect to a resource
sqs= session.resource('sqs')

queue = sqs.get_queue_by_name(QueueName=transactionQueue)
print(queue.url)

# Create a new message
print 'creating new message'
toWrite = 'hello world'
response = queue.send_message(MessageBody=toWrite)
print(response.get('MessageId'))

#Reading messages in queue
messages = queue.receive_messages()
print 'there are %s messages in the queue' % len(messages)
for message in messages:
    # SQS Message
    message.body
    message.delete()

将新消息发送到队列(并打印出消息 ID)后,我尝试读取队列中的消息,但returns没有新消息,就好像什么都没写一样。

我做错了什么吗?

谢谢!

当队列较小时,您不能保证会收到任何消息作为响应。这是一个 属性 的分布式队列。有关详细信息,请参阅 this page

这里有几件事在起作用。一方面,我不小心使用了另一个组件正在读取的队列(并删除了它的消息)。我不知道这一点。此外,Jordon 的评论也是一个问题,因为我正在测试一次读取一个。