forTerraform 中的運算式是否基本上只是為了對for_each元引數提供更精細的控制,例如,它可能只是迭代串列的一個子集?
for_each和之間的區別count已經很明顯了。我只是有點迷失了試圖想象的重點for
非常感謝您的任何指點,包括文章。谷歌并沒有證明有幫助
uj5u.com熱心網友回復:
在 Terraform 中for,for_each用于不同的目的。
for_each是一個元引數。它適用于資源和模塊(Terraform 0.13 及更高版本)。for_each元引數接受集合或映射,對于集合/映射中的每個專案,都會創建一個新資源。
例如:
resource "aws_instance" "example" {
for_each = {
"t2.micro" = "ami-b374d5a5"
"t3.nano" = "ami-4b32be2b"
}
instance_type = each.key
ami = each.value
}
這將使用映射中的實體型別和 AMI 創建 2 個 EC2 實體。請注意,在遍歷地圖以參考其鍵值項時可以使用for_each提供each.key和each.value物件。如果 a 的輸入for_each是一個集合,則比each.key和each.value指向相同的值。
for另一方面,是用于操作串列、集合、元組和映射的運算式。它可用于對那些復雜型別的元素應用一些轉換。
例如:
variable "names" {
default = ["alice", "bob"]
}
locals {
upper = [for n in names: upper(n)] # result will be ["ALICE", "BOB"]
}
for運算式的輸出可用作 a 的輸入for_each。
例子:
var ids {
default = ["b374d5a5", "4b32be2b"]
}
resource "aws_instance" "example" {
for_each = toset([for id in ids: "ami-${id}"])
instance_type = "t2.micro"
ami = each.value
}
uj5u.com熱心網友回復:
嗯,回答我自己的問題..
似乎有助于將函式應用于在資源中迭代的串列等,例如更改大小寫、轉換變數型別、從 base64 解碼等
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367560.html
上一篇:C#:如何在回圈中處理派生類中實作但父類中未實作的方法?
下一篇:沒有添加到回圈串列中的值沒有約束
