我正在創建EC2實例,但是當我添加Route53記錄時,DNS需要60秒才能進行復制並得到識別。Terraform EC2實例的Route53記錄延遲
resource "aws_instance" "zk-host" {
ami = "ami-30041c53" # Amazon Linux Image
count = "${var.count}"
associate_public_ip_address = false
connection {
user = "ec2-user"
}
provisioner "remote-exec" {
inline = [
... install things here...
#"sudo service zookeeper-server start ... after some delay ?"
]
}
}
// Make a DNS entry for each host while we're here.
resource "aws_route53_record" "route53-record-zk" {
zone_id = "${var.route53-zone-id}"
count = "${var.count}"
name = "${var.host-name-prefix}${count.index}.dwh.local"
type = "A"
ttl = "30"
records = [
"${element(aws_instance.zk-host.*.private_ip, count.index)}"
]
}
問題是,我正在使用remote-exec provisioner在我的EC2實例中啓動依賴於DNS查找其對等方的服務。
我似乎無法在創建EC2實例之前配置DNS條目。
有沒有辦法可以後期處理我的EC2實例並在以後啓動服務?還是有一種技術可以延遲服務啓動,直到DNS條目存在?
您需要在remote-exec中添加包裝腳本,例如'sleep 120'。 – BMW
感謝您的建議,但沒有奏效。這個問題似乎是* aws_route53_record *的相互依賴關係。它取決於aws_instance獲取它的IP。添加睡眠只會延遲aws_instance的完成。我想我需要以某種方式在背景中分叉它。 – Exie