You have declared a variable called var.list which is a list of objects that all have an attribute id.
Which options will produce a list of the IDs? (Choose two.)
You have declared a variable called var.list which is a list of objects that all have an attribute id.
Which options will produce a list of the IDs? (Choose two.)
To produce a list of the IDs from a list of objects that have an id attribute, you can use the following options: var.list[*].id and [ for o in var.list : o.id ]. The first option uses the splat operator [*] to iterate over all elements of the list and select the id attribute, resulting in a list of IDs. The second option uses a for-expression to iterate over each object in the list and collect the id attribute of each object into a new list. Both methods will correctly produce a list of IDs from var.list.
https://www.terraform.io/language/expressions/splat A splat expression provides a more concise way to express a common operation that could otherwise be performed with a for expression.
Here's an example: Assume you have the following variable declaration: variable "users" { default = [ { id = "id1" name = "name1" }, { id = "id2" name = "name2" }, { id = "id3" name = "name3" } ] } You can retrieve the list of IDs in your Terraform configuration using either of these options: output "users_splat" { value = var.users[*].id } output "users_for" { value = [for user in var.users : user.id] } Both these outputs will produce the same list of IDs: ["id1", "id2", "id3"].
A and B is the correct answer
Apart from B and D , C is also correct > [for o in var.list : o.id] [ "1", "2", "3", ]
Answer is BD. https://developer.hashicorp.com/terraform/language/expressions/splat
B. var.list[*].id and D. [ for o in var.list : o.id ]. To produce a list of IDs from a list of objects with an id attribute, you can use either of the following options: var.list[*].id: This uses the [*] wildcard to select all elements of the var.list list, and the .id syntax to select the id attribute of each element. This will produce a list of IDs. [ for o in var.list : o.id ]: This uses a for expression to iterate over each element of var.list, selecting the id attribute of each element. This will produce a list of IDs.
A is wrong as the question asked which one creates a "list"
BD for sure
https://developer.hashicorp.com/terraform/language/expressions/splat B and D
https://www.terraform.io/language/expressions/splat
he correct options that will produce a list of the IDs are B and D: Option B, var.list[*].id, uses the splat operator [*] to iterate over all elements of the var.list list and then accesses the id attribute of each object. The result is a list of all the id values. Option D, [ for o in var.list : o.id ], uses a list comprehension to iterate over each object in the var.list list and create a new list that contains only the id attribute of each object.
The splat and interpolation. Ans is B & D
B and D are correct, checked them. Reference: https://developer.hashicorp.com/terraform/language/expressions/for
BD. Tried each expression
The splat and interpolation-style
B and D is corrrect
B and D is correct