es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible concatenar un valor de cadena y una lista de objetos en Terraform?

A continuación se muestra mi código Terraform donde tengo una lista de objetos con 5 valores. ¿Es posible concatenar cada valor de la lista con los valores de cadena?

locals {
  mylist = ["aaa", "bbb", "ccc", "ddd", "eee"]
  str1 = "hello"
  str2 = "Data"

  mergedstring = "${local.str1},${join(",", local.mylist)},${local.str2}"
}

Necesito el resultado en el siguiente formato:

hello,aaa,Data
hello,bbb,Data
hello,ccc,Data
hello,ddd,Data
hello,eee,Data

¿Cómo puedo lograr esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible concatenar cada valor en la lista con los valores de cadena usando Terraform.

    Para lograr la salida requerida, podemos utilizar la expresión for en Terraform para recorrer la variable local mylist y concatenar cada valor con las cadenas str1 y str2. Aquí está el código actualizado:

    locals{
      mylist = ["aaa", "bbb", "ccc", "ddd", "eee"]
      str1 = "hello"
      str2 = "Data"
    
      mergedstring = [for item in local.mylist: "${local.str1},${item},${local.str2}"]
    }
    
    output "concatenated_strings" {
      value = local.mergedstring
    }
    

    En el código anterior, estamos creando una nueva lista mergedstring utilizando la expresión for. La expresión recorre cada elemento en mylist, lo concatena con str1 y str2, y lo guarda como una nueva cadena en la lista mergedstring.

    Finalmente, podemos utilizar el bloque output para imprimir la lista mergedstring, lo cual nos dará la salida requerida.

    La salida del código anterior será:

    concatenated_strings = [
      "hello,aaa,Data",
      "hello,bbb,Data",
      "hello,ccc,Data",
      "hello,ddd,Data",
      "hello,eee,Data",
    ]
    

    Esto cumple con el formato de salida requerido.

Comments are closed.