
# 输出变量
输出变量可以理解为模块的返回值，通过关键字 "output" 进行声明。输出变量是一种对外公开某些信息的方法，既可以在根模块中运行 terraform apply/output 命令输出特定的值，又可以在子模块中将资源的属性值提供给父模块。
#### 声明输出变量
按照约定，输出变量通常在名为 variables.tf 的文件中定义。输出变量通过"output"关键字进行声明：
```
output "ecs_address" {
  value       = huaweicloud_compute_instance.myinstance.network[0].fixed_ip_v4
  description = "The private IP address of my ECS"
}
```
output 关键字后的标签为输出变量的名称，该名称必须是有效的标识符。output块中主要包括以下参数：
- value：必选项，输出变量的值，任何有效的表达式都可作为输出使用。

- description：输出变量的描述信息，用于描述输出变量的用途。
  ```
  output "vpc_id" {
    value       = huaweicloud_vpc.myvpc.id
    description = "Check out the VPC ID"
  }
  ```
  

- sensitive：将输出变量标记为敏感项，在 CLI 中将隐藏输出变量值的显示。
  ```
  output "vpc_id" {
    value       = huaweicloud_vpc.myvpc.id
    description = "Check out the VPC ID"
    sensitive   = true
  }
  $ terraform output
  vpc_id = <sensitive>
  ```
  注意：标记为敏感项的输出变量在输出时会自动被隐藏，但其输出值仍然可以通过以下方式可见：
  - 输出变量的值记录在 state 文件中，其值对所有能够访问state 文件的用户均可见。
  
  - 子模块中敏感输出变量值被父模块调用，通过父模块的相关输出和资源引用后可以在CLI中显示。
   

- depends_on：指定输出变量的依赖关系。由于输出变量只是导出数据的一种手段，因此通常不需要设置与其他资源、数据的依赖关系。
 
