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