Console interactive pour tester et évaluer des expressions Terraform (fonctions, variables, références au state).


Options principales

OptionDéfautDescription
-state=FICHIERterraform.tfstateFichier state à utiliser
-var="key=value"aucuneVariable inline
-var-file=FICHIERterraform.tfvarsFichier de variables

Utilisation interactive

# Lancer la console
terraform console
 
# Taper des expressions HCL et obtenir les résultats :
> 1 + 2
3
 
> "hello ${var.env}"
"hello prod"
 
> aws_instance.web.public_ip
"52.10.0.100"
 
> length(["a","b","c"])
3
 
> exit   # ou Ctrl+D

Tester des fonctions HCL

# Fonctions de chaîne
> split(",", "a,b,c")
tolist(["a", "b", "c",])
 
> join("-", ["foo", "bar"])
"foo-bar"
 
> upper("hello")
"HELLO"
 
> replace("hello world", " ", "_")
"hello_world"
 
> format("server-%02d", 5)
"server-05"
 
# Fonctions de collection
> length(["a","b","c"])
3
 
> contains(["dev","prod","staging"], "prod")
true
 
> merge({a="1"}, {b="2"})
{a = "1", b = "2",}
 
> toset(["a","b","a"])
toset(["a", "b",])
 
# Fonctions réseau/encodage
> cidrsubnet("10.0.0.0/16", 8, 1)
"10.0.1.0/24"
 
> base64encode("hello")
"aGVsbG8="
 
> jsondecode("{\"key\":\"value\"}")
{key = "value",}

En mode pipe (non-interactif)

# Évaluer une expression depuis la ligne de commande
echo 'split(",", "a,b,c")' | terraform console
 
# Tester une variable
echo 'var.region' | terraform console
 
# Tester une référence au state
echo 'aws_instance.web.public_ip' | terraform console
 
# Dans un script
RESULT=$(echo 'format("sg-%s-%s", var.env, var.app)' | terraform console)
echo "Security group name: $RESULT"

En relation avec