📜  terraform 变量列表 (1)

📅  最后修改于: 2023-12-03 15:20:36.300000             🧑  作者: Mango

Terraform 变量列表

Terraform 是一种基础设施即代码 (IaC) 工具,它的特色之一是可以使用变量来定制代码和配置文件。本文旨在介绍 Terraform 变量列表,以帮助程序员更好地使用 Terraform 管理基础设施。

变量类型

Terraform 变量有以下几种类型:

  • 字符串 (string):表示任意长度的文本。例如:"us-west-1"。
  • 数字 (number):表示整数或浮点数。例如:42 或 3.14。
  • 布尔值 (bool):表示真或假。例如:true 或 false。
  • 列表 (list):表示任意数量的其他类型的元素。例如:["us-west-1", "us-east-1"]。
  • 映射 (map):表示字符串和其他类型之间的关系。例如:{"region": "us-west-1", "ami": "ami-0c55b159cbfafe1f0"}。
变量声明

Terraform 中变量的声明格式如下:

variable "variable_name" {
  type        = variable_type
  default     = default_value
  description = "variable_description"
}

其中:

  • variable_name:变量名称,必须唯一。
  • variable_type:变量类型,可以是 string、number、bool、list 或 map。
  • default_value:变量的默认值,可选。
  • variable_description:变量的描述信息,可选。

例如:

variable "region" {
  type        = string
  default     = "us-west-1"
  description = "The AWS region to deploy resources to."
}
变量使用

在 Terraform 配置文件中,可以使用 ${var.variable_name} 的形式来引用变量。例如:

resource "aws_instance" "web" {
  ami           = "${var.ami}"
  instance_type = "${var.instance_type}"
  subnet_id     = "${var.subnet_id}"
}

如果变量有默认值,则可以省略它的定义并直接使用。例如:

resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "${var.instance_type}"
  subnet_id     = "${var.subnet_id}"
}
变量值传递

Terraform 变量的值可以通过命令行参数 -var 或者环境变量 TF_VAR_* 来传递。例如:

terraform apply -var 'region=us-west-2'

或者:

export TF_VAR_region=us-west-2
terraform apply
总结

本文介绍了 Terraform 变量列表的基本概念和使用方法,以及变量声明和使用的示例。通过使用 Terraform 变量,程序员可以更加灵活和定制化地编写基础设施代码和配置文件,从而更好地管理基础设施。