Commandes utilitaires liées aux métadonnées Terraform : principalement l’introspection des fonctions disponibles dans le contexte courant (providers inclus).


terraform metadata functions — lister les fonctions disponibles

Affiche toutes les fonctions utilisables dans les expressions HCL : fonctions built-in de Terraform et fonctions apportées par les providers installés.

# Lister toutes les fonctions (built-in + providers)
terraform metadata functions
 
# Sortie JSON (pour traitement ou documentation)
terraform metadata functions -json
 
# Filtrer avec jq : chercher une fonction spécifique
terraform metadata functions -json | jq '.functions | keys[]' | grep cidr
 
# Afficher la signature d'une fonction
terraform metadata functions -json | jq '.functions["cidrsubnet"]'

Exemple de sortie JSON :

{
  "functions": {
    "cidrsubnet": {
      "description": "cidrsubnet calculates a subnet address...",
      "return_type": "string",
      "parameters": [
        { "name": "prefix",   "type": "string" },
        { "name": "newbits",  "type": "number" },
        { "name": "netnum",   "type": "number" }
      ]
    },
    "upper": {
      "description": "upper converts the given string to uppercase.",
      "return_type": "string",
      "parameters": [
        { "name": "str", "type": "string" }
      ]
    }
  }
}

Fonctions apportées par les providers

Depuis Terraform 1.8, les providers peuvent exposer leurs propres fonctions HCL.

# Exemple : provider AWS expose des fonctions utilitaires
output "arn_parsed" {
  value = provider::aws::arn_parse("arn:aws:s3:::mon-bucket")
}
# Après terraform init, vérifier les fonctions du provider aws
terraform metadata functions -json | jq '.functions | with_entries(select(.key | startswith("provider::")))'

En relation avec