depends_on
在同一个 Terraform 配置文件中可以包含多个资源。通过在资源中引用其他资源的属性值,Terraform可以自动推断出资源的依赖关系。然而,某些资源的依赖关系对于Terraform是不可见的,这就需要使用 depends_on 来创建显式依赖。我们可以使用 depends_on 来更改资源的创建顺序或执行顺序,使其在所依赖资源之后处理。depends_on 的表达式是依赖资源的地址列表。例如我们在远程操作一台ECS服务器之前,需要为其绑定EIP或配置NAT规则。
resource "huaweicloud_compute_instance" "myinstance" { ... } resource "huaweicloud_vpc_eip" "myeip" { ... } resource "huaweicloud_compute_eip_associate" "associated" { public_ip = huaweicloud_vpc_eip.myeip.address instance_id = huaweicloud_compute_instance.myinstance.id } resource "null_resource" "provision" { depends_on = [huaweicloud_compute_eip_associate.associated] provisioner "remote-exec" { connection { # 通过公网地址访问 ECS host = huaweicloud_vpc_eip.myeip.address ... } inline = [ ... ] } }