ฉันกำลังพยายามสร้างเราเตอร์ระบบคลาวด์โดยมีช่วงเครือข่ายสองช่วงที่ได้รับการโฆษณา แต่ฉันได้รับข้อผิดพลาดที่คลุมเครือมากจาก Terraform และฉันไม่สามารถระบุได้ว่ามีอะไรผิดปกติ
ทรัพยากร "google_compute_router" "router1" {
ชื่อ = "${var.alias}-prod1-ha-vpn-cloud-router-1"
โครงการ = var.project_name
เครือข่าย = var.network1
ภูมิภาค = var.region1
bgp {
asn = var.asn
Advertising_mode = "กำหนดเอง"
ไดนามิก "advertised_ip_ranges" {
for_each = var.advertised_ip_ranges_prod1
เนื้อหา {
range = adverted_ip_ranges_prod1.value["cidr"]
คำอธิบาย = Advertising_ip_ranges_prod1.value["desc"]
}
}
}
}
และรหัสโมดูลจริง:
โมดูล "vpn-ha-เกตเวย์" {
ที่มา = "-----"
project_name = var.project_name
ลูกค้า = var.customer
นามแฝง = var.นามแฝง
ภูมิภาค 1 = var.region1
นับ = (var.vpn_type == "ha-vpn" ? 1 : 0) ## สร้างถ้า vpn_type เป็น ha-vpn
network1 = module.prod1-vpc.self_link
customer_redundancy = var.customer_redundancy
customer_ha_vpn_peers = var.customer_ha_vpn_peers
shared_secret = var.shared_secret
asn = var.asn
cust_asn = var.cust_asn
Advertising_ip_ranges_prod1 = var.advertised_ip_ranges_prod1
}
เรากำหนดให้ ads_ip_ranges_prod1 เป็นแผนที่ เนื่องจากเราไม่รู้ว่าแต่ละโมดูลจะมีจำนวนเท่าใด:
ตัวแปร "advertised_ip_ranges_prod1" {
ประเภท = รายการ (แผนที่ (สตริง))
คำอธิบาย = "โฆษณาโดย BGP บน prod1"
ค่าเริ่มต้น = [
{
cidr = "1.2.3.4/28" ## Prod1 ช่วงที่โฆษณา
desc = "ช่วงรองที่โฆษณาผ่าน BGP"
},
{
cidr = "5.6.7.8/28" # ทดสอบช่วงที่โฆษณา
desc = "ช่วงทดสอบที่โฆษณาผ่าน BGP"
},
]
}
และในขณะที่ฉันมีโมดูลอื่น ๆ ที่สร้างขึ้นด้วยวิธีเดียวกัน (โดยที่ for_each) ทำงานได้อย่างถูกต้อง โมดูลนี้ยังคงทิ้งข้อผิดพลาดที่คลุมเครือเหล่านี้:
ข้อผิดพลาด: การอ้างอิงถึงทรัพยากรที่ไม่ได้ประกาศ
บน .terraform\modules\vpn-ha\main.tf บรรทัดที่ 36 ในทรัพยากร "google_compute_router" "router1":
36: range = advertising_ip_ranges_prod1.value["cidr"]
ไม่มีการประกาศทรัพยากรที่มีการจัดการ "advertised_ip_ranges_prod1" "value"
ใน module.vpn-ha-gateway
ข้อผิดพลาด: การอ้างอิงถึงทรัพยากรที่ไม่ได้ประกาศ
บน .terraform\modules\vpn-ha-gateway\main.tf บรรทัดที่ 37 ในทรัพยากร "google_compute_router" "router1":
37: คำอธิบาย = advertising_ip_ranges_prod1.value["desc"]
ไม่มีการประกาศทรัพยากรที่มีการจัดการ "advertised_ip_ranges_prod1" "value"
ใน module.vpn-ha-gateway.```