如何在DLQ不存在时通过Terraform配置SQS?

9
当队列和死信队列都不存在时,如何创建一个SQS队列并指定死信队列的maxReceiveCount策略? 文档中提到了这是可能的。
resource "aws_sqs_queue" "terraform_queue" {
  # ...
  redrive_policy = "{\"deadLetterTargetArn\":\"${aws_sqs_queue.terraform_queue_deadletter.arn}\",\"maxReceiveCount\":4}"
}

我倾向于认为人们在文档添加这个内容之前已经仔细考虑并使其工作。

因此,我希望了解我可能遗漏了什么,并需要做些什么来避免类似这样的合理错误消息:

unknown resource 'aws_sqs_queue.terraform_queue_deadletter'
referenced in variable aws_sqs_queue.terraform_queue_deadletter.arn

啊,算了吧!从Elastic Beanstalk(EB)跳到Terraform时,我没有意识到EB正在为管理员提供两个单独的队列,然后将它们连接起来。我以为在SQS中,队列+DLQ的预配是一个原子操作,如果不是这种情况,那么错误就有道理了。只需要预配两个队列并将它们连接起来...在查看开源存储库时得到了这个提示:https://github.com/Raymondsquared/Terraform/blob/9dfd8574e45cb86b55b6bdb8771d35bea2935440/example.tf#L13 - pulkitsinghal
1
这可能值得自我回答,以展示Terraform如何管理资源之间的依赖关系,让其他用户了解。 - ydaetskcoR
@lf215 刚刚看到这个悬赏,它与你自己的问题非常相关。我有点想将其关闭为你的问题的重复,因为答案更详细,但我担心答案过于依赖你正在使用的模块。你是否希望在这里更详细地解释,而不使用模块来简化答案? - ydaetskcoR
1
请在此处解释更多。 - lf215
https://registry.terraform.io/modules/damacus/sqs-with-dlq/aws/latest 可能会有所帮助! - GiamPy
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接