我有一个lambda函数,我想为它创建一个SQS死信队列。我开始创建地形中的SQS:
resource "aws_sqs_queue" "my_lambda_dlq" {
name = "my_lambda_dlq"
delay_seconds = 90
max_message_size = 2048
message_retention_seconds = 86400
receive_wait_time_seconds = 10
redrive_policy = jsonencode({
deadLetterTargetArn = aws_sqs_queue.terraform_queue_deadletter.arn
maxReceiveCount = 4
})
tags = local.default_tags
}
这是来自terraform的例子。然而,我陷入了补救政策的困境。
- 我理解正确吗,这为SQS队列设置了一个死信队列
- 如果我设置了redrive_policy,则意味着我正在DLQ上设置DLQ。我觉得可以在DLQ上设置DLQ,等等
我找不到任何与此相关的最佳实践。有人有这方面的经验吗?
我在这里的主要目标是不泄露任何信息。谢谢Luminita
通过指定redrive_policy
,您可以配置未处理/失败消息的发送位置。将这些消息发送到的队列称为dlq/死信队列,但它仍然是一个正常队列。
是的,DLQ可以再次拥有另一个DLQ,因为每个DLQ本身仍然只是一个队列。我想不出在任何情况下你会想要这样做,但没有什么能阻止你这样做
";如果我设置了redrive_policy,这意味着我正在DLQ上设置DLQ">-从技术上讲,dlq不存在,AWS只知道队列。通过将一个队列配置为另一个的dlq,您不会改变这两个队列都是队列。如果将任何队列配置为任何其他队列的重新驱动目标,则该队列都是DLQ。