json中的terraform替换变量
我正在使用terraform创建rds服务器。我使用列表变量传递选项组。选项组variable.tf中的变量如下所示json中的terraform替换变量,terraform,amazon-rds,terraform-provider-aws,Terraform,Amazon Rds,Terraform Provider Aws,我正在使用terraform创建rds服务器。我使用列表变量传递选项组。选项组variable.tf中的变量如下所示 options = [ { option_name = "SQLSERVER_BACKUP_RESTORE" option_settings=[ { name = "IAM_ROLE_ARN" value = "${role_arn}" }, ]
options = [
{
option_name = "SQLSERVER_BACKUP_RESTORE"
option_settings=[
{
name = "IAM_ROLE_ARN"
value = "${role_arn}"
},
]
},
我想替换main.tf中的“${role\u arn}”变量。有人能帮我解决语法问题吗?我用
resource "provider_resource" "name" {
property = "value"
options = [
{
option_name = "SQLSERVER_BACKUP_RESTORE"
option_settings = [
{
name = "IAM_ROLE_ARN"
value = "${role_arn}"
},
]
}
]
}
data "template_file" "json_template" {
template = file("path/to/file.json")
vars = {
role_arn = var.dynamic_value
}
}
resource "provider_resource" "name" {
property = "value"
options = data.template_file.json_template.rendered
}
更改后,您将获得以下内容:
resource "provider_resource" "name" {
property = "value"
options = [
{
option_name = "SQLSERVER_BACKUP_RESTORE"
option_settings = [
{
name = "IAM_ROLE_ARN"
value = "${role_arn}"
},
]
}
]
}
data "template_file" "json_template" {
template = file("path/to/file.json")
vars = {
role_arn = var.dynamic_value
}
}
resource "provider_resource" "name" {
property = "value"
options = data.template_file.json_template.rendered
}
我用计算机解决这类问题
resource "provider_resource" "name" {
property = "value"
options = [
{
option_name = "SQLSERVER_BACKUP_RESTORE"
option_settings = [
{
name = "IAM_ROLE_ARN"
value = "${role_arn}"
},
]
}
]
}
data "template_file" "json_template" {
template = file("path/to/file.json")
vars = {
role_arn = var.dynamic_value
}
}
resource "provider_resource" "name" {
property = "value"
options = data.template_file.json_template.rendered
}
更改后,您将获得以下内容:
resource "provider_resource" "name" {
property = "value"
options = [
{
option_name = "SQLSERVER_BACKUP_RESTORE"
option_settings = [
{
name = "IAM_ROLE_ARN"
value = "${role_arn}"
},
]
}
]
}
data "template_file" "json_template" {
template = file("path/to/file.json")
vars = {
role_arn = var.dynamic_value
}
}
resource "provider_resource" "name" {
property = "value"
options = data.template_file.json_template.rendered
}
干杯,这有助于@gustavo。。。我从…将此传递给资源选项组代码。。。。它抛出错误,无法在中为每个\u使用字符串值。需要一个可编辑的集合。。。。。。。任何变量转换??在您的情况下,选项是一个列表。如果此列表中只有一个值,则可以将“选项”值更改为以渲染模板作为其单个值的列表。例如:从json中删除数组,并将资源更改为使用
options=[data.template\u file.json\u template.rendered]
。如果你需要不止一个值,那么你需要做更多的研究。感谢你的回复@gustavo会尝试这个。。。我尝试将函数tolist(data.template\u file.json\u template.rendered)转换为list。没用,干杯,这有助于@gustavo。。。我从…将此传递给资源选项组代码。。。。它抛出错误,无法在中为每个\u使用字符串值。需要一个可编辑的集合。。。。。。。任何变量转换??在您的情况下,选项是一个列表。如果此列表中只有一个值,则可以将“选项”值更改为以渲染模板作为其单个值的列表。例如:从json中删除数组,并将资源更改为使用options=[data.template\u file.json\u template.rendered]
。如果你需要不止一个值,那么你需要做更多的研究。感谢你的回复@gustavo会尝试这个。。。我尝试将函数tolist(data.template\u file.json\u template.rendered)转换为list。不起作用