Результат внешнего источника данных не найден при уничтожении terraform - PullRequest
0 голосов
/ 15 октября 2019

Как бы вы использовали Внешний источник данных для вывода?

В соответствии с этими двумя проблемами это было бы невозможно из-за depends_on, который мне нужен в данном случае. Я не вижу пути.

https://github.com/hashicorp/terraform/issues/16728 https://github.com/hashicorp/terraform/issues/11806

depends_on необходим, потому что data блоки запускаются до resource, и вв этом случае нам сначала нужно resource.

# Script allocating resources via internal API call
resource "null_resource" "allocate-resource" {
  provisioner "local-exec" {
    command = "python ${path.module}/scripts/api_allocation.py"
  }
}

# API call to list the resources created in previous bloc
data "external" "params" {
  program = ["python", "${path.module}/scripts/api_params.py"]
  depends_on = ["null_resource.allocate-resource"]
}

# Output used by next layer to deploy a VPC
output "vpc_net_id" {
  value = "${data.external.params.result["vpc_net_id"]}"
}

terraform plan и terraform apply работают, но я не могу использовать его для terraform destroy

Ошибка:

1 error occurred:
    module.auto_subnetting.output.vpc_net_id: Resource 'data.external.params'
    does not have attribute 'result' for variable 'data.external.params.result'

Единственный обходной путь, который я нашел на данный момент, - это заменить пустую строку перед уничтожением

output "vpc_net_id" {
  value = ""
}

Примечание: клиент застрял с терраформой 0.11 на данный момент. Но 0.12 решения также приветствуются.

...