构造boto sqs fifo MessageGroupId

时间:2017-12-16 00:36:12

标签: python boto amazon-sqs

目前正在使用boto(不是boto3)并尝试为FIFO队列构建消息 - 但它一直在抱怨没有MessageGroupId。 (boto)文档在此字段上完全没有声明,我无法确定在何处设置此信息。

设置:

from boto import sqs
from boto.sqs.message import Message
sqs = boto.resource('sqs')
conn = sqs.connect_to_region('my_region')
fifo = conn.get_queue('my-queue.fifo')

尝试1:

>> m = Message()
>> m.attribute['MessageGroupId'] = 'group1'
>> m.set_body('test 1')
>> fifo.write(m)

SQSError:400 Bad Request
<?xml version="1.0"?>
  <ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
    <Error>
      <Type>
        Sender
      </Type>
      <Code>
        MissingParameter
      </Code>
      <Message>
        The request must contain the parameter MessageGroupId.
      </Message>
    <Detail/>
  </Error>
  <RequestId>
    {blah}
  </RequestId>
</ErrorResponse>

好的,很好,它不属于message.attribute,那么...... message.message_attributes

>> m = Message()
>> m.message_attributes['MessageGroupId'] = 'group1'
>> m.set_body('test 1')
>> fifo.write(m)

## same error as above

也许我需要将其作为参数传递?

>> M = Message(MessageGroupId='group1')

TypeError: unexpected keyword arg

所以,我的问题是:如何在FIFO中构建有效的message boto?让我们从MessageGroupId开始,但如果MessageDeduplicationId存在不同之处,请同时提供该信息(我不使用ContentBasedDeduplication)。

0 个答案:

没有答案