我正在嘗試使用 for 回圈和 range 函式的組合創建一個 ip 串列。我試圖讓回圈遍歷數字范圍并將該數字附加為 IP 地址中的最后一位數字。
locals {
windows_ip_list = [for i in range(var.Number) : format("%sd", "10.16.0.1", i)]
}
為變數 var.Number 賦予 5 的值會創建一個 5 元素元組,但會出現以下錯誤。
│ 9: private_ip = local.windows_ip_list #var.win_ip[count.index]
│ ├────────────────
│ │ local.windows_ip_list is tuple with 5 elements
│
│ Inappropriate value for attribute "private_ip": string required.
resource "aws_instance" "Windows" {
ami = "ami-02c1f4de3809f0050"
instance_type = "t2.large"
#subnet_id = aws_subnet.Engineering[count.index].id
subnet_id = aws_subnet.windows.id
security_groups = [aws_security_group.Engineering.id]
key_name = aws_key_pair.ENG-DEV.id
count = var.Number
private_ip = local.windows_ip_list #var.win_ip[count.index]
associate_public_ip_address = false
任何創建所需串列的幫助將不勝感激。
提前致謝。
uj5u.com熱心網友回復:
您應該在 windows_ip_list 元組中參考私有 ip 的索引,local.windows_ip_list[count.index]而不是local.windows_ip_list作為 private_ip 屬性需要字串值而不是串列
要獲得清晰的視圖,請嘗試回顯local.windows_ip_list包含 by 的值:
terraform console
然后輸入local.windows_ip_list并按回車
uj5u.com熱心網友回復:
呼叫變數并使用 count.index 是修復它的方式。
private_ip = local.windows_ip_list[count.index]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/435111.html
