คุณช่วยอธิบายและแก้ไขข้อผิดพลาดนี้ได้ไหม
ฉันมีโปรแกรม TF ต่อไปนี้สำหรับอินสแตนซ์ที่มีไดรฟ์ข้อมูล EBS และไฟล์เทมเพลตโดยใช้รหัสไดรฟ์ข้อมูลนั้น:
ทรัพยากร "aws_instance" "edge1" {
instance_type = "t3a.micro"
ami = data.aws_ami.ubuntu.id
key_name = "โอโซน"
£ อุปกรณ์รูทบล็อก
root_block_device {
ปริมาตร_ขนาด=10
}
user_data = data.template_file.user_data_edge1.rendered
}
£ สิ้นสุดทรัพยากร "aws_instance" "edge1"
€
£ EBS สำหรับบ้าน
€
ทรัพยากร "aws_ebs_volume" "บ้าน" {
vailability_zone = aws_instance.edge1.availability_zone
ขนาด = 1
}
ทรัพยากร "aws_volume_attachment" "homes-volume-attachment" {
device_name = "/dev/xvdf"
instance_id = aws_instance.edge1.id
volume_id = aws_ebs_volume.homes.id
}
ข้อมูล " template_file " " user_data_edge1 " {
แม่แบบ = ไฟล์ ("metadata-edge1.yml", { vol_id = aws_ebs_volume.homes.id })
}
ดังนั้นสิ่งนี้ทำให้ฉันมีข้อผิดพลาดของวงจร:
ข้อผิดพลาด: วงจร: data.template_file.user_data_edge1, aws_instance.edge1, aws_ebs_volume.homes
ในขณะที่ฉันคิดว่ามันไม่ควร ฉันรู้ว่าการพึ่งพาแบบวงกลมคืออะไร เมื่อวัตถุชิ้นแรกอ้างถึงวัตถุชิ้นที่สอง ในขณะที่วัตถุชิ้นที่สองอ้างอิงถึงวัตถุชิ้นแรก แต่ฉันคิดว่ามันไม่เป็นไรในกรณีนี้โดยมีลำดับต่อไปนี้:
- สร้างไดรฟ์ข้อมูลแล้ว
- ไฟล์เทมเพลตแสดงผลโดยใช้รหัสโวลุ่ม
- อินสแตนซ์ถูกสร้างขึ้นด้วยไฟล์เทมเพลตสำหรับ user_data
- ไดรฟ์ข้อมูลที่แนบมากับอินสแตนซ์
แต่กราฟ TF แสดงให้เห็นว่าอินสแตนซ์ขึ้นอยู่กับปริมาณ:
เหตุใดจึงเกิดขึ้น และฉันจะใช้รหัสโวลุ่มในไฟล์เทมเพลตสำหรับอินสแตนซ์ได้อย่างไร
ขอบคุณล่วงหน้า!