嗨,我有两个 lambda,例如:L1 和 L2。 L1 创建 SQS 消息并将其发送到我的 SQS 队列。 示例:
queue.send_message(MessageBody='boto3', MessageAttributes={
'Author': {
'StringValue': 'Daniel',
'DataType': 'String'
}
})
如果此消息处理失败,L2 现在从 SQS 接收此消息以进行进一步处理 该消息将移至 DLQ,其中另一个 lambda L3 将进行故障处理。 我想做的是,当消息失败时,L2 将在消息中添加消息属性
(Error: failed due to xyz)
,然后该消息将移至 DLQ。
但据我所知,SQS 消息是不可变的,不知道如何操作。谁能帮我解决这个问题,或者有其他选择吗?
这是不可能的。一旦消息被发送到队列,SQS 消息的消息属性就不可变。 SQS 查询 API(由所有客户端库使用)不支持修改队列中的消息,除了更改其可见性超时。