我正在尝试在我的文件顶部配置一个列表,以列出应订阅 SNS 主题的所有 SQS 资源。它抛出一个“资源变量必须是三个部分:TYPE.NAME.ATTR”
我使用了局部变量,因为它们似乎支持插值,而变量不支持。
locals {
update-subscribers = [
"${var.prefix}-${terraform.workspace}-contribution-updates"
]
}
这是我的 sns 主题订阅的片段。
resource "aws_sns_topic_subscription" "subscription" {
count = "${length(locals.update-subscribers.*)}"
topic_arn = "${aws-sns-update-topic.topic.arn}"
protocol = "sqs"
endpoint = "arn:aws:sqs:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:${element(locals.update-subscribers, count.index)}"
endpoint_auto_confirms = true
}
能够使用我的变量列表会很好,这样我就可以切换工作区而不会在 AWS 站点上出现任何问题。我能找到的所有示例都指向 CIDR 设置的静态列表,而我希望我的列表基于插值字符串。我也试过
locals.contribution-update-subscribers[count.index]
Terraform 也不喜欢那样。应该如何设置我的文件以支持此功能或是否可以支持它?