You need to enable JavaScript to run this app.
导航

基本语法

最近更新时间2022.05.17 17:55:02

首次发布时间2022.05.17 12:06:31

参数

使用等号将一个值或表达式赋予给一个指定的参数名称,参数名称可以使用字母、数字、下划线(_)和连接符(-)表示,且首字母不能是数字。示例:Name = "tfecs"

一组由多个参数组成的结构,且支持嵌套。块由块类型、块标签和块主体组成。示例:

resource "instance" "myinstance" {
    name   = "tfecs"
    ......
    network {
        id = "subnet-3tispp1nai4e8i4q****"
    }
}
  • 块类型:定一个块体首先必须定义块类型,本例中resourcenetwork为块类型,resource为顶层块类型,network为嵌套块类型。
  • 块标签:定义在块类型之后,本例中resource包含instancemyinstance两个标签,network没有块标签。
  • 块主体:定义在最后,由{}进行封装,在块主体内还可以嵌套其他块类型实现不同的层级结构。

参数类型

基本类型

基本类型是一种不由任何其他类型构成的简单类型。

  • string:字符串类型,由一个或多个Unicode字符组成,例如 "hello"。
  • number:数字类型,可以为整数或小数。
  • bool:布尔类型,只能为ture或false。

示例:

ZoneId       = "cn-beijing-a"
Count        = 1
UniqueSuffix = true

复合类型

复合类型是由一组值组成的。

  • list(...):列表类型,一组从0开始的、具有相同类型的数据的集合,数据类型可以是基本类型或块。
    • 格式:使用[]封装。
    • 示例:
    InstanceIds = [
      "i-3tigy72q3u3vj0x2****"
      "i-3tigy72q3u3vj0x2****"
    ]
    
  • map(...):映射类型,由键值对(key-value)组成的数据元素集合,其中key为string类型,value可以为string、number、bool类型,但所有value必须为同一种类型。
    • 格式:使用{}封装,key和value间使用:=连接,键值对之间使用换行符或者逗号进行分隔。
    • 示例:
    ResponseMetadata = {
      "RequestId": "xxxxxxxxxx"
      "Action": "StartInstance"
    }
    
  • set(...):集合类型,类似于列表元素,使用[]封装,但数据需需具有唯一性。

特殊类型

  • null:空类型,如果将一个参数设置为null,表示不填写此参数,Terraform会自动忽略该参数,并使用默认值。

注释

  • #或//:单行注释,其后为注释内容。
  • //:多行注释,以/* 开头,以*/结尾,其间为注释内容。