我将 terraform 从 0.11 迁移到 0.12。我有一个模块,它应该配置 AWS SQS 队列和可选的死信队列。
我的回购在这里
我对队列资源有以下条件:
resource "aws_sqs_queue" "regular_queue_with_dl" {
count = var.attach_dead_letter_config ? 1 : 0
redrive_policy = var.attach_dead_letter_config ? data.template_file.regular_queue_redrive_policy[count.index].rendered : null
...
}
在使用 DLQ 创建队列时首次运行attach_dead_letter_config=true
,但当我想删除 DLQ ( attach_dead_letter_config=false
) 时,当 terraform 计划运行时出现问题:
Error: Invalid index
on modules/sqs/sqs.tf line 67, in resource "aws_sqs_queue" "regular_queue_with_dl":
67: redrive_policy = var.attach_dead_letter_config ? data.template_file.regular_queue_redrive_policy[count.index].rendered : null
|----------------
| count.index is 0
| data.template_file.regular_queue_redrive_policy is empty tuple
在模块中创建此类可选资源的正确方法是什么?