Vă rugăm să ne ajutați să explicați și să rezolvați această eroare?
Am următorul program TF pentru o instanță cu un volum EBS și un fișier șablon folosind acel ID de volum:
resursa „aws_instance” „edge1” {
instance_type = "t3a.micro"
ami = data.aws_ami.ubuntu.id
key_name = "ozonm"
£ dispozitiv de blocare rădăcină
root_block_device {
dimensiune_volum = 10
}
user_data = data.template_file.user_data_edge1.rendered
}
£ Sfârșitul resursei „aws_instance” „edge1”
£
£ EBS pentru case
£
resursă „aws_ebs_volume” „case” {
available_zone = aws_instance.edge1.availability_zone
dimensiune = 1
}
resursă „aws_volume_attachment” „case-volum-attachment” {
device_name = "/dev/xvdf"
instance_id = aws_instance.edge1.id
volum_id = aws_ebs_volume.homes.id
}
date „model_file” „user_data_edge1” {
șablon = fișier(„metadata-edge1.yml”, { vol_id = aws_ebs_volume.homes.id })
}
Deci asta îmi dă o eroare de ciclu:
Eroare: Ciclu: data.template_file.user_data_edge1, aws_instance.edge1, aws_ebs_volume.homes
în timp ce cred că nu ar trebui. Știu ce este dependența circulară, când primul obiect se referă la al doilea, în timp ce al doilea se referă la primul. Dar cred că este perfect în acest caz cu următoarea ordine:
- volumul este creat
- fișierul șablon este redat folosind ID-ul volumului
- instanța este creată cu fișierul șablon pentru user_data
- volumul este atașat instanței
Dar graficul TF arată că instanța depinde de volum:
Deci, de ce se întâmplă acest lucru și cum pot folosi un ID de volum în fișierul șablon pentru instanță?
Mulțumesc anticipat!