【发布时间】:2018-03-03 09:10:06
【问题描述】:
我想为多个开发和生产环境使用相同的 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}"
我的地形模板:
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 模块管理,无需动态重新定义资源名称。
-
您应该将 Farid 的答案标记为正确。与该答案相关的类似问题是正确的。
标签: terraform