Я сталкиваюсь с этой проблемой, когда пытаюсь передать список значений в шаблон данных в терраформе.
Я пробовал разными способами, например
source_vpc_endpoints
в виде списка и принимая ["vpce-xxx", "vpce-yyy"]
,
source_vpc_endpoints = "${jsonencode(var.source_vpc_endpoints)}"
в data.tf
а также
source_vpc_endpoints
в виде строки и принимая "\"vpce-xxx\", \"vpce-yyy\""
,
source_vpc_endpoints = var.source_vpc_endpoints"
в data.tf
terragrunt.hcl
source_vpc_endpoints = "vpce-xxx,vpce-yyy"
Data.tf
data "template_file" "resource_policy" {
template = file("resourcePolicy.json")
vars = {
resource = aws_api_gateway_rest_api.api_gateway_rest.arn
source_vpc_endpoints = "${jsonencode(split(",", var.source_vpc_endpoints))}"
}
}
Ресурсная политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "${resource}",
"Condition": {
"StringEquals": {
"aws:SourceVpce": "${source_vpc_endpoints}"
}
}
}
]
}
Каждый из них возвращает мне эту ошибку:
Консоль: ошибка: политика содержит недопустимый JSON: недопустимый символ 'v' после пары "ключ объекта: значение"
on aws_api_gateway_rest_api_policy.tf line 4, in resource "aws_api_gateway_rest_api_policy" "policy":
4: policy = data.template_file.resource_policy.rendered
[terragrunt] 2020/12/23 17:35:07 Hit multiple errors:
exit status 1
Есть ли способ исправить это?
я использую terraform (0.12.29) и terragrunt (v0.23.2) aws provider (~ ›v3.21.0)