
# count
默认情况下，Terraform的 resource块只配置一个资源。当需要创建多个相同的资源时，如果配置多个独立的 resource块就显得很冗余，且不利于维护。可以使用 count 或 for_each 参数在同一个 resource块中管理多个相同的资源。在同一个 resource块中不能同时使用count 和 for_each 参数。示例如下：
```
resource "huaweicloud_evs_volume" "volumes" {
  count = 3
  size              = 20
  volume_type       = "SSD"
  availability_zone = "cn-north-4a"
}
```
通过如上配置创建了3个相同的云硬盘（EVS）。在很多情况下，Provider 要求创建资源的某些参数具有唯一性，这时可以使用 "count.index" 属性来进行区分，这是一个从0开始计数的索引值。
```
resource "huaweicloud_vpc" "vpcs" {
}
```
通过如上配置创建了两个VPC，名字分别为 myvpc_0 和 myvpc_1，它们具有相同的CIDR值。如果进一步修改CIDR值，可以声明一个string列表用于存储不同VPC的CIDR值，然后通过 count.index 去访问列表元素。
```
variable "name_list" {
  type    = list(string)
  default = ["vpc_demo1", "vpc_demo2"]
}
variable "cidr_list" {
  type    = list(string)
  default = ["192.168.0.0/16", "172.16.0.0/16"]
}
resource "huaweicloud_vpc" "vpcs" {
  count = 2
  name  = var.name_list[count.index]
  cidr  = var.cidr_list[count.index]
}
```
使用 count 创建的资源需要通过索引值进行访问，格式为：\<资源类型\>.\<名称\>\[索引值\]
```
# 访问第一个VPC
> huaweicloud_vpc.vpcs[0]
# 访问第一个VPC的ID
> huaweicloud_vpc.vpcs[0].id
# 访问所有VPC的ID
> huaweicloud_vpc.vpcs[*].id
```
