2017-09-22 8 views
1

J'utilise la source de données http pour récupérer des données du service interne. Le service renvoie des données json.Décoder la chaîne json à la carte terraform

Je ne peux pas interpoler les données json renvoyées et les données de recherche qui s'y trouvent.

Par exemple:

Module

A

data "http" "json_data" { 
    url = "http://myservice/jsondata" 

    # Optional request headers 
    request_headers { 
     "Accept" = "application/json" 
    } 
} 

output "json_data_key" { 
    value = "${lookup(data.http.json_data.body, "mykey")}" 
} 

main.tf

provider "aws" { 
    region = "${var.region}" 
    version = "~> 0.1" 
} 

module "moduleA" { 
    source = "../../../terraform-modules/moduleA" 
} 

resource "aws_instance" "example" { 
    ami = "ami-2757f631" 
    instance_type = "${module.moduleA.json_data_key}" 
} 

La fonction de recherche ne parvient pas à extraire la clé dans les données JSON Est-ce l'un moyen de décoder les données json dans une carte terrafrom?

Répondre

0
data "external" "example" { 
     program = ["echo", "${var.json}"] 
    } 

    output "map" { 
     value = "${data.external.example.result}" 
    }