Постановка проблемы Я пытаюсь автоматизировать aws API-шлюз с помощью terraform. Это часть моего кода
для API-шлюза
resource "aws_api_gateway_rest_api" "rest_api" {
#some code
policy = "${data.template_file.init.rendered}"
}
output "id" {
value = "${aws_api_gateway_rest_api.rest_api.id}"
}
output "execution_arn" {
value = "${aws_api_gateway_rest_api.rest_api.execution_arn}"
}
output "arn" {
value = "${aws_api_gateway_rest_api.rest_api.arn}"
}
для политики ресурсов обратите внимание, я хочу автоматизировать вставку идентификатора API в json документ политики
data "aws_region" "current" {}
data "aws_caller_identity" "current" {}
data "template_file" "init" {
template = "${file("${path.root}/${var.policy_file_location}")}"
vars = {
current_region = "${data.aws_region.current.name}"
current_aws_account = "${data.aws_caller_identity.current.account_id}"
current_api_id = "${aws_api_gateway_rest_api.rest_api.id}"
}
}
json policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:${current_region}:${current_aws_account}:${current_api_id}/*"
}
]
}
Когда я пытаюсь предоставить политику ресурсов, аналогичную следующей, я получаю
Ошибка: Cycle: module.simple-api-gw.data.template_file.init, module.simple-api-gw.aws_api_gateway_rest_api. rest_api
как я могу устранить эту ошибку? Я хочу предоставить api id динамически в файле json.