1 votes

Terraformer une sortie complexe à partir d'une ressource avec des blocs dynamiques

J'ai une ressource comme celle-ci :

resource "yandex_mdb_mysql_cluster" "main" {
      + allow_regeneration_host = false
      + created_at              = (known after apply)
      + description             = "Multi node MySQL cluster created with Terraform"
      + environment             = "PRODUCTION"
      + health                  = (known after apply)
      + id                      = (known after apply)
      + labels                  = {
          + "env" = "dev"
        }
      + name                    = (known after apply)
      + status                  = (known after apply)
      + version                 = "5.7"

      + access {
          + data_lens = false
          + web_sql   = true
        }

      + backup_window_start {
          + hours   = 1
          + minutes = 0
        }

      + host {
          + assign_public_ip = false
          + fqdn             = (known after apply)
          + subnet_id        = (known after apply)
          + zone             = "ru-central1-a"
        }
      + host {
          + assign_public_ip = false
          + fqdn             = (known after apply)
          + subnet_id        = (known after apply)
          + zone             = "ru-central1-b"
        }
      + host {
          + assign_public_ip = false
          + fqdn             = (known after apply)
          + subnet_id        = (known after apply)
          + zone             = "ru-central1-c"
        }

Maintenant, je veux mettre en place une sortie qui obtient des données à partir de dynamique host sous forme de carte comme host.zone = host.fqdn comme :

{ru-central1-a = "fqdn-a"
ru-central1-b = "fqdn-b"
ru-central1-c = "fqdn-c"}

J'ai essayé d'exécuter boucle for sur toute la ressource en prenant host.zone et host.fqdn mais cela ne semble pas fonctionner.... Toute aide est appréciée !

1voto

kubanczyk Points 13302

Avez-vous essayé quelque chose comme ça ?

output x {
  value = { for v in yandex_mdb_mysql_cluster.main.host: v.zone => v.fqdn }
}

1 votes

Merci ! Oui, j'ai fait quelque chose comme ça, mais le problème n'avait rien à voir : cette ressource se trouvait dans le module optionnel avec le compte et le conditionnel et quand j'ai essayé de renvoyer cette sortie sans l'indice [0] (module.databases.hosts_fqdn au lieu de module.databases[0].hosts_fqdn), Terraform m'a donné une erreur pas très utile : " Cette valeur n'a pas d'attributs ". Quoi qu'il en soit, votre solution m'a obligé à chercher une erreur à d'autres endroits, merci ! =)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X