更新时间:2022-02-10 GMT+08:00

Resource

Resource 是Teraform中最重要的元素,通过关键字 "resource" 进行声明。华为云Provider中支持的云服务都有一个或多个资源与之对应,如huaweicloud_compute_instance表示ECS,huaweicloud_vpc表示VPC等。资源之间的关系可以通过关系型资源进行关联,如我们可以使用 huaweicloud_compute_eip_associate 给ECS分配EIP。

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
}

资源引用

我们可以通过表达式引用资源的属性,格式为:<资源类型>.<名称>.<属性>。假设我们已经创建了名称为 myinstance 的 huaweicloud_compute_instance 资源,举例如下:

# 实例ID
> huaweicloud_compute_instance.myinstance.id
55534eaa-533a-419d-9b40-ec427ea7195a

# 实例安全组
> huaweicloud_compute_instance.myinstance.security_groups
["default", "internet"]

# 实例第一个网卡的IP地址
> huaweicloud_compute_instance.myinstance.network[0].fixed_ip_v4
192.168.0.245

# 实例所有网卡的IP地址
huaweicloud_compute_instance.myinstance.network[*].fixed_ip_v4
["192.168.0.24", "192.168.10.24"]

# 标签key的值
> huaweicloud_compute_instance.myinstance.tags["key"]
value