首页 > 解决方案 > 使空资源等待 Terraform 中的 aws_route53_record

问题描述

resource "aws_route53_record" "record" {
    zone_id = data.aws_route53_zone.selected.zone_id
    name    = "${var.sfs_instance_name}.example.com"
    type    = "A"
    ttl     = "60"
    records = ["${aws_eip.sfs.public_ip}"]
  }

resource "null_resource" "sfs-ssl-certs" {

  connection {
    type        = "ssh"
    user        = "centos"
    host        = aws_eip.sfs.public_ip
    private_key = file("../keys/${var.sfs_instance_name}.pem")
  }

  provisioner "remote-exec" {
    inline = [
      "set -x",
      "sudo certbot --nginx -d ${var.sfs_instance_name}.example.com --register-unsafely-without-email --agree-tos --force-renewal --non-interactive > /home/centos/get_cert.log"
    ]
}

即时为域名创建 nginx ssl,"${var.sfs_instance_name}.example.com"在执行结束时添加条目,因此 certbox ssl 证书创建失败,我该如何克服它,我可以等待resource "aws_route53_record"条目创建还是有其他解决方法?

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


我认为解决方案是添加depends_on

resource "null_resource" "sfs-ssl-certs" {

  depends_on = [aws_route53_record.record]

  connection {
    type        = "ssh"
    user        = "centos"
    host        = aws_eip.sfs.public_ip
    private_key = file("../keys/${var.sfs_instance_name}.pem")
  }

  provisioner "remote-exec" {
    inline = [
      "set -x",
      "sudo certbot --nginx -d ${var.sfs_instance_name}.example.com --register-unsafely-without-email --agree-tos --force-renewal --non-interactive > /home/centos/get_cert.log"
    ]
}

推荐阅读