我想为几个开发和生产环境使用相同的terraform模板。如何在Terraform中使用动态资源名称?
我的方法: 据我所知,资源名称必须是唯一的,并且terraform在内部存储资源状态。因此,我试图为资源名称使用变量 - 但似乎不支持。我得到一个错误信息:
$ terraform plan
var.env1
Enter a value: abc
Error asking for user input: Error parsing address 'aws_sqs_queue.SqsIntegrationOrderIn${var.env1}': invalid resource address "aws_sqs_queue.SqsIntegrationOrderIn${var.env1}"
我terraform模板:
variable "env1" {}
provider "aws" {
region = "ap-southeast-2"
}
resource "aws_sqs_queue" "SqsIntegrationOrderIn${var.env1}" {
name = "Integration_Order_In__${var.env1}"
message_retention_seconds = 86400
receive_wait_time_seconds = 5
}
我认为,无论是我的做法是错误的,或者语法。有任何想法吗?
使用terraform模块进行管理,您无需动态重新定义资源名称。 – BMW