У меня в Terraform есть эта политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "${source_ip}"
}
}
}
]
}
, и у меня есть переменная author_ip, определенная так:
variable "authorized_ip" {
default = [
"x.x.x.x/x",
"x.x.x.x/x",
]
}
Теперь я вызываю политику Json следующим образом:
data "template_file" "apigw_policy" {
template = "${file("${path.module}/template/apigateway_policy.json.template")}"
vars = {
source_ip = "${var.authorized_ip}"
}
}
Но я получаю эту ошибку:
Недопустимое значение для атрибута "vars": элемент "source_ip": обязательная строка.
Таким образом, Terraform ожидает строку вместо списка.Как преобразовать список в строку, чтобы иметь такой результат:
"IpAddress": {
"aws:SourceIp": [
"x.x.x.x/x",
"x.x.x.x/x"
]
}