Terragrunt.hcl
terraform {
source = "../..//infrastructure/module"
}
include {
path = find_in_parent_folders()
}
inputs = {
sqs_queue_names = ["CloudTrail_SQS_Management_Event", "CloudTrail_SQS_Data_Event"]
dead_queue_names = ["CloudTrail_DLQ_Management_Event", "CloudTrail_DLQ_Data_Event"]
}
我從我的 terragrunt 配置中呼叫的模塊
Variable.tf
variable "sqs_queue_names"{
description = "The name of different SQS to be created"
type = set(string)
}
variable "dead_queue_names"{
description = "The name of different Dead Queues to be created"
type = set(string)
}
resource "aws_sqs_queue" "CloudTrail_SQS"{
for_each = {for idx, val in var.sqs_queue_names: idx => val}
name = each.value
redrive_policy = jsonencode({
deadLetterTargetArn = values(aws_sqs_queue.CloudTrail_SQS_DLQ)[each.key].arn
maxReceiveCount = var.max_receive_count
})
tags = var.default_tags
}
resource "aws_sqs_queue" "CloudTrail_SQS_DLQ"{
for_each = toset(var.dead_queue_names)
name = each.value
tags = var.default_tags
}
更新的代碼。我從我的 terragrunt 配置中呼叫模塊以創建 2 個 SQS 和 2 個 DeadLetterQueue。我希望 terraform 創建“CloudTrail_SQS_Management_Event”并將其與“CloudTrail_DLQ_Management_Event”相關聯,同時創建 CloudTrail_SQS_Data_Event 并將其關聯為“CloudTrail_EventDLQ_Data”
Error Message:
Error: Invalid index
│
│ on main.tf line 15, in resource "aws_sqs_queue" "CloudTrail_SQS":
│ 15: deadLetterTargetArn = values(aws_sqs_queue.CloudTrail_SQS_DLQ)[each.key].arn
│ ├────────────────
│ │ aws_sqs_queue.CloudTrail_SQS_DLQ is object with 2 attributes
│ │ each.key is "CloudTrail_SQS_Management_Event"
uj5u.com熱心網友回復:
請更換:
type = set(string)
進入
type = list(string)
原因是set不能通過索引訪問。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323686.html
