目前正在使用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
)。